我们在过去已经看了一些由多核协会组合的api,特别是MCAPI通信API(及其更新)及MRAPI资源管理API。本着同样的精神,他们现在开始讨论任务管理的问题。
多核软件的整体思想是,一个程序可以被分解成多个可以同时运行的部分。如何划分是一个难题,随着多核设计过程的发展,一些工具也开始关注这个问题了自动化.您可能认为这些部分是线程,但实际上,线程通常是SMP系统中的特定实现。可选的并行配置可以包括多个独立的程序(而不是线程),每个程序都有自己的操作系统,甚至在“裸机”上运行到完成的简单程序,即根本没有操作系统(因此没有线程服务)。
因此,与其纠结于程序的这些“部分”是线程还是程序或其他什么,还不如将它们统称为任务。而且,虽然SMP操作系统可以处理线程的管理和调度,但对于非SMP系统没有通用的任务管理解决方案——或者,更重要的是,没有适用于SMP和AMP(同构和异构系统)的通用方法。
即使在线程服务存在的地方,对于许多嵌入式程序来说,它们也会有太多的开销。包括创建和销毁线程的成本在内,开销可以完全抵消并行版本应该提供的任何理论上的收益。如果您的程序利用细粒度并行性,处理数百个或更多的小任务,那么线程管理的时间可能比线程本身的实际执行时间还要长。
为了解决这个问题,多核协会正在着手创建一个任务管理API,称为MTAPI,以便为所有架构提供一种通用方法,并且其实现可以根据需要根据有限的资源进行调整。这个过程才刚刚开始,他们正在征求意见和参与者。
更多信息可以在他们的释放...