Efforts Will Allow Software Developers to Ignore Hardware Details and Focus on Parallel Solutions
EL DORADO HILLS, Calif. July 26, 2011
Using homogeneous and/or heterogeneous multicore processors requires the programmer to develop software that splits a software program into tasks that can be executed in parallel on different processor cores. Today’s operating systems and runtime libraries for embedded systems provide threads or thread-like mechanisms that are not suited for the fine-grain parallelism required by multicore architectures, typically because the coordination of hundreds or thousands of parallel tasks generates too much overhead relative to the actual computation time. The current programming model requires complex, low-level synchronization and programming with threads is limited to single operating systems running on single homogeneous multicore processors. In heterogeneous embedded systems, however, a system-wide task management is needed.
The MTAPI specification aims to eliminate these obstacles by providing an API that allows programmers to develop parallel embedded software in a straight-forward manner. Core features of MTAPI are runtime scheduling and mapping of tasks to processor cores. Due to its dynamic behavior, MTAPI is intended for optimizing throughput on multicore-systems, allowing the software developer to improve the task scheduling strategy for latency and fairness.
Unlike existing APIs that provide task management functionality (e.g. OpenMP, TBB, Cilk), the MTAPI specification will allow implementations for resource-constrained embedded systems, such as those with a small memory footprint, deterministic behavior, and allow for hardware-specific optimizations. Furthermore, portability is essential for the implementation. Therefore, MTAPI will support different processor architectures and can be implemented on top of different operating systems or as a bare-metal solution. In short, MTAPI supports asymmetric multiprocessing at the hardware and software level.
Urs Gleim University of Houston
Markus Levy [email protected]
About The Multicore Association
The Multicore Association provides a neutral forum for vendors who are interested in, working with, and/or proliferating multicore-related products, including processors, infrastructure, devices, software, and applications. The consortium has made available its Multicore Communications API (MCAPI) and Multicore Resource Management API (MRAPI) specifications through its website. Currently, the organization has active working groups focused on: Multicore Virtualization, Multicore Communications (Version 2.x), Multicore Programming Practices (MPP), Multicore Task Management (MTAPI) and Tools Infrastructure (TIWG).
Carnegie Mellon University Montreal University of Houston University of Tsukuba www.multicore-association.org
SOURCE Multicore Association