The Multicore Association
+1 530 672-9113
Enhanced Open Source Framework Available for Parallel Programming on Embedded Multicore Devices
Framework Utilizes Multicore Association’s Task Management API (MTAPI) to Support Heterogeneous Systems and Optimized Parallel Solutions
El Dorado Hills, Calif. – July 18, 2017 – The Multicore Association, a global non-profit organization that develops standards to speed time-to-market for products with multicore processor implementations, has announced the availability of a significantly enhanced implementation of its Multicore Task Management API (MTAPI) integrated into an open source framework called Embedded Multicore Building Blocks (EMB2). In addition to MTAPI, which takes care of task scheduling and execution on embedded parallel systems, EMB2 provides generic building blocks for compute-intensive applications that require parallelism on homogeneous or heterogeneous multicore platforms. These applications include image recognition, signal processing, data analysis for IoT, or artificial intelligence, targeting domains such as industrial automation, energy production and management, health care, smart cities, mobility, and consumer electronics.
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 a portable way of 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.
“There are various frameworks available for parallel programming, mainly targeting desktop and server applications or high performance computing. Unfortunately, they do not take into account typical requirements for embedded systems such as predictable memory consumption, task priorities or support for heterogeneous systems-on-a-chip”, said Tobias Schüle, a member of Siemens’ Corporate Technology’s Multicore Expert Center and primary creator of EMB². “We want to enable developers of embedded systems to benefit from state-of-the-art software frameworks and the advances of the hardware, which is becoming increasingly more parallel.”
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. 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.
“Standardized 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,” said Markus Levy, president of the Multicore Association. “Siemens’ contribution of EMB2 to the developer community should be very well received and provides a great vehicle for users to try out the capabilities of our MTAPI.”
The latest version of EMB² provides several new features and improvements:
- Fully compliant MTAPI reference implementation plus C++ wrappers for convenient task management
- Support for heterogeneous systems at all levels (MTAPI and high-level algorithms / patterns)
- Ready-to-use plugins for OpenCL, CUDA, and distributed systems communicating over a network
- Various API and build system enhancements for better usability and reduced development effort
- Improved support for timing-critical applications using task priorities and affinities
- Revised and extended documentation including a comprehensive sample application
- Wider platform support and easier portability to other hardware architectures
- Performance and stability improvements (e.g., through static code analysis)
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. More information on EMB² can be found on the corresponding website. Inquiries regarding membership in the Multicore Association and participation in any working group can be made to Markus Levy (firstname.lastname@example.org).
About The Multicore Association
The Multicore Association provides a neutral forum for vendors interested in, working with, and/or proliferating multicore-related products, including processors, infrastructure, devices, software, and applications. The consortium has made freely available its SHIM, Multicore Communications API (MCAPI) Multicore Resource Management API (MRAPI), and Multicore Task Management (MTAPI) specifications, as well as its Multicore Programming Practices (MPP) guide. In addition to the SHIM working group, the organization has active working groups focused on OpenAMP and Multicore Communications (Version 3.x). Further information is available at www.multicore-association.org.
Members include eSOL, Express Logic, Mentor Graphics, Nagoya University, NXP, PolyCore Software, Renesas Electronics, Siemens AG, Silexica, Silicon Labs (Micrium), Texas Instruments, Wind River, and Xilinx.# # #