"One aspect of the MCAPI infrastructure involves the specification of a network of communication nodes, where a node can be a process, thread, instance of an operating system, hardware accelerator, or processor core," Levy said.
MCAPI is designed to work with MRAPI, an API for application-level resource management capabilities that coordinate power management and virtualization on multicore chips. Chips contain functions and features that change dynamically, and on some multicore chips it is hard for a single OS to track and control all resources, Levy said. MRAPI provides low-level support for system-level event notification such as power-savings states, device failures and hypervisor repartitioning.
For example, Linux-based devices with symmetric multiprocessing do not support a facility to notify applications when the operating environment or resources have changed, Levy said. To accommodate the deficiency, MRAPI provides programmers with implementation mechanisms to manage resource sharing and respond to changes in the resource availability.
"Utilizing MRAPI, system developers can write portable application programs that will scale throughout current and future generations of multicore processors and architectures, benefitting application, middleware, processor and system developers," Levy said.
This standardization will allow chip vendors and third-party tool providers to take over the resource management, so programmers can focus on high-level applications, Levy said.
The organization is also developing APIs for users of embedded virtualization products, which could enable interoperatibility of applications and middleware across different virtualization environments. But a larger focus is on developing standardized tools that take advantage of the APIs. Some backers of the new APIs such as Mentor, Intel, Freescale, and Texas Instruments, for example, all had developed their own debug and tracing tools, Levy said.
"The net result for tool vendors is that as much as they would like to be a one-stop shop, it is impossible. No single vendor can offer everything that their customers require, and yet customers must be able to develop for and understand this diverse system," Levy said.
There are other multicore programming models such as OpenMP and OpenCL, but they are all designed to be "synergistic" rather than competitive, Polycore's Brehmer said. The OpenMP API is designed to write machine-level parallel applications, while OpenCL is a programming framework for parallel execution of tasks across multicore processors including CPUs and graphics processors.
The Multicore Association members also include IBM, Samsung, and AMD.