The Multicore Association, the processor standards body with a focus on multicore processor implementations, has announced the availability of an enhanced implementation of its Multicore Task Management API (MTAPI) integrated into an open source framework called Embedded Multicore Building Blocks (EMB2).
The MTAPI takes care of task scheduling and execution on embedded parallel systems. While the EMB2 provides generic building blocks for compute-intensive applications, such as image recognition, big data analysis, that require parallelism on homogeneous or heterogeneous multicore platforms.
To fully utilise multicore processors or systems-on-chip (SoCs), a programmer must develop software that splits a program into tasks that can be executed concurrently on different processor cores.
The MTAPI specification is intended as a portable way of allowing programmers to develop parallel embedded software with familiar programming processes.
Markus Levy, president of the Multicore Association, writes:
“Standardised interfaces such as MTAPI, as well as associated libraries and tools, are essential for the development of parallel software in embedded systems. Otherwise, programmers waste lots of effort implementing redundant functionality.”
MTAPI features include runtime scheduling and mapping of tasks to processor cores. Optionally, the MTAPI implementation provides access to hardware-implemented actions and/or queues to take advantage of processor-specific features and to increase performance.
EMB2 is a C/C++ library for the development of parallel applications containing several components on top of a base layer which abstracts the operating system and the underlying multicore hardware to ensure portability.
Under BSD license, the MTAPI implementation is available for download at GitHub as part of EMB2. Contributions, such as enhancements and ports to other operating systems, are welcomed.
The MTAPI specification is also available for free download from the Multicore Association website.