MULTICORE COMMUNICATIONS API WORKING GROUP (MCAPI®)
The Multicore Communications API (MCAPI®) specification defines an API and a semantic for communication and synchronization between processing cores in embedded systems.
The purpose of MCAPI, which is a message-passing API, is to capture the basic elements of communication and synchronization that are required for closely distributed (multiple cores on a chip and/or chips on a board) embedded systems. The target systems for MCAPI span multiple dimensions of heterogeneity (e.g., core, interconnect, memory, operating system, software toolchain, and programming language). MCAPI provides a limited number of calls with sufficient communication functionality while keeping it simple enough to allow efficient implementations. Additional functionality can be layered on top of the API set. The calls are exemplifying functionality and are not mapped to any particular existing implementation.
While many industry standards exist for distributed systems programming, they have primarily been focused on the needs of widely distributed systems, SMP systems, or specific application domains (for example scientific computing.) Thus, the Multicore Communications API from the Multicore Association has similar, but more highly constrained, goals than these existing standards with respect to scalability and fault tolerance, yet has more generality with respect to application domains. MCAPI is scalable and can support virtually any number of cores, each with a different processing architecture and each running the same or a different operating system, or no OS at all. As such, MCAPI is intended to provide source-code compatibility that allows applications to be ported from one operating environment to another.
The MCAPI working group has completed the second version of this specification.
The MCAPI working group is currently working on version 3.0. Functional areas that are being worked on include shared memory/zero copy message/packet management functions and interoperability. We are also producing official MCAPI subsets, one of which will address the Internet of Things (IoT).
- Sven Brehmer, President, PolyCore Software