Association addresses challenges of parallel programming

2 mins read

The Multicore Association, a global nonprofit organisation that develops standards to speed time to market for products with multicore processor implementations, has announced its continued intent to 'tear down barriers' that slow development of complex multicore applications.

The association says these barriers arise when programmers attempt to split programmatic workloads into parallel tasks that can be executed in parallel on different processor cores. It has launched a new working group, Multicore Task Management API (MTAPI), charged with creating an industry standard specification for an application programme interface (API) that supports the coordination of tasks on embedded parallel systems. Using homogeneous and/or heterogeneous multicore processors requires a programmer to develop software that splits a software programme 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 threadlike 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 synchronisation 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 straightforward manner. Core features of MTAPI are runtime scheduling and mapping of tasks to processor cores. Due to its dynamic behaviour, MTAPI is intended for optimising 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 (eg OpenMP, TBB, Cilk), the MTAPI specification is designed to allow implementations for resource constrained embedded systems, such as those with a small memory footprint, deterministic behaviour and allow for hardware specific optimisations. According to the association, 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. Effectively, MTAPI is designed to support asymmetric multiprocessing at the hardware and software level. "MTAPI is aligned with our previously released specifications, MCAPI and MRAPI, said Markus Levy, pictured, Multicore Association president."Together, these APIs provide a balanced infrastructure to support other multicore services and value added functions. These services and functions include dynamic load balancing, global power management, and quality of service." Urs Gleim, programme manager for Parallel Processing Systems at Siemens AG, Corporate Technology, is chairing the MTAPI Working Group, with technical experts participating from industry and academia including: ENEA, Freescale Semiconductor, LSI, Qualcomm, Plurality, PolyCore Software, Siemens, Texas Instruments, University of Houston, and Wind River. "The challenges of task management and parallel programming are exacerbated by the use of complex SoCs supporting heterogeneous architectures and hardware acceleration units. MTAPI will uncouple the hardware details and let the software developer focus on creating the parallel solution," said Gleim. "This important standard is a critical need in the embedded industry and I'm highly motivated to chair this working group."