MULTICORE RESOURCE MANAGEMENT API WORKING GROUP (MRAPI®)
MRAPI® is an industry-standard API that specifies essential application-level resource management capabilities. Multicore applications require this API to allow coordinated concurrent access to system resources in situations where:
- There are not enough resources to dedicate to individual tasks or processers, and/or
- The runtime system does not provide a uniformly accessible mechanism for coordinating resource sharing.
This API is applicable to both SMP and AMP embedded multicore implementations (whereby AMP refers to heterogeneous both in terms of software and hardware). MRAPI® (in conjunction with other Multicore Association® APIs) can serve as a valuable tool for implementing applications, as well as for implementing such full-featured resource managers and other types of layered services.
Multicore Resource Management API (MRAPI®) captures the essential capabilities required for managing shared resources in a closely distributed embedded system. These resources include multiple, homogeneous or heterogeneous cores or chips, hardware accelerators, memory regions, and I/O. MRAPI® supports the ability to declare and allocate/destroy shared memory regions and to identify nodes which have access to each region. MRAPI® also provides application-level synchronization primitives for coordinating access to shared resources. MRAPI supports queries regarding static and dynamic resources, and it supports system-level event notification such as power-savings states, device failures, and hypervisor repartitioning. It allows coordinated concurrent access to system resources in situations where (a) there are too few resources to dedicate to individual tasks or processors, and/or (b) the runtime system does not provide a uniformly accessible mechanism for coordinating resource-sharing.
MRAPI® 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, MRAPI® is intended to provide source-code compatibility that allows applications to be ported from one operating environment to another.
- Jim Holt, Manager, Processor Core Architecture, Freescale Semiconductor
- Sven Brehmer, President, PolyCore Software