El Dorado Hills, Calif. – Nov. 4, 2014 – The Multicore Association, a global non-profit organization that develops standards to speed time-to-market for products with multicore processor implementations, has announced that one of its members, Siemens AG, has made available an open source implementation of its Multicore Task Management Application Program Interface (MTAPI) specification. The MTAPI specification supports the coordination of tasks on embedded parallel systems.
To fully utilize 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 provides an API allowing programmers to develop parallel embedded software with familiar programming processes. 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.
The open source MTAPI implementation, available under BSD license, is part of a bigger software package that Siemens has named Embedded Multicore Building Blocks (EMB2). EMB2 is a C/C++ library for the development of parallel applications containing several components on top of a base layer that abstracts the operating system and the underlying multicore hardware to ensure portability. Besides MTAPI, EMB2 provides basic parallel algorithms, concurrent data structures, and skeletons for implementing stream processing applications. EMB² comes with C++ wrappers for MTAPI, which simplifies development in object-oriented environments
The current version of EMB² supports Linux and Windows, but since all platform-specific details are hidden in the base library of EMB², only a few sections may need to be adapted when porting to another platform. Also, it currently supports only homogeneous multicore devices. In 2015, Siemens plans, among other extensions and improvements, to release MTAPI support for multiple nodes with distributed memory (e.g. heterogeneous cores), which could also utilize the Multicore Association’s Communication API (MCAPI) to provide communication between the nodes.
“Standardized interfaces such as MTAPI, as well as associated libraries and tools, are essential for the development of software in embedded systems,” said Tobias Schüle, a member of Siemens’ Corporate Technology’s Multicore Expert Center and primary creator of EMB². “Otherwise, a lot of effort is wasted on implementing redundant functionality. While there is a variety of frameworks for parallel programming of desktop and server systems, the landscape in the embedded domain is less rich. With EMB², our goal is to contribute to closing this gap.”
EMB² can be used for a variety of applications. For example, using the “Dataflow” component, it can be applied to applications that process streams of data, e.g. sensor/actuator data in controllers, audio signals, video images, or network packets. Additionally, the “Algorithms” component provides basic patterns such as parallel loops or summations, which are useful to parallelize numerical algorithms. A hypothetical example is a device that receives a continuous stream of video images from objects transported on a conveyor belt, processes the images to distinguish broken from intact objects, and controls an actuator in order to separate the objects.
The MTAPI implementation is available for download at GitHub as part of EMB2. Contributions, e.g., ports to other operating systems, are welcomed. The MTAPI specification is also available for free download from the Multicore Association website. Inquiries regarding membership in the Multicore Association and participation in any working group can be made to Markus Levy (firstname.lastname@example.org).