MULTICORE TASK MANAGEMENT WORKING GROUP (MTAPI®)
Objective
MTAPI® provides a standard API for leveraging task parallelism on embedded devices containing symmetric or asymmetric multicore processors, covering a wide range of target architectures.
Overview
Multicore processors require software that splits work into tasks that can be executed in parallel on different processor cores. Implementing tasks as threads results in significant overhead for creating and controlling parallel execution. This process is complex, error-prone, and hardware dependent (e.g. the number of threads depends on the number of cores available). Furthermore, programming with threads is limited to a single operating system running on a homogeneous multicore processor. System-wide task management in heterogeneous embedded systems must be realized explicitly with low level communication mechanisms.
MTAPI addresses those issues by providing an API which allows parallel embedded software to be designed in a straight-forward way. It abstracts the hardware details and lets the software developer focus on the parallel solution. Compared to existing APIs that provide task management functionality (i.e. OpenMP, TBB, Cilk), MTAPI is designed for embedded systems. With MTAPI there are no compiler, hardware, or operating system dependencies. With MTAPI, the API is plain C (minimizing ABI interoperability problems), it allows implementations for resource limited devices (in terms of memory footprint and CPU power), it is portable, and covers homogeneous and heterogeneous multicore-architectures, as well as hardware acceleration units.
Core features of MTAPI is dynamic scheduling (i.e. at runtime) and mapping tasks to processor cores. Due to the dynamic behavior, MTAPI is intended for optimizing throughput on multicore systems. The task scheduling strategy can be optimized for latency and fairness. This allows the creation of soft real-time systems.
- MTAPI Overview
- MTAPI in a Nutshell
- Video Describing Multicore Task Management
- MTAPI Reference Card
- Download the Multicore Task Management API

Chairperson
- Tobias Schuele, Siemens AG