You might have come across the Multicore Association (MCA) already, an open membership organisation that aims to create standards for various multicore challenges. The association has completed its Multicore Communication API (MCAPI) and Multicore Resource Management API (MRAPI) and has made them available for download. The MCAPI has been downloaded over 1300 times, so the organisation is clearly having an impact.
- Sven Brehmer, chairman, the Multicore Association’s MCAPI working group
- Markus Levy, President, the Multicore Association
To find out more about the body’s work and standards, I conducted an email interview with Sven Brehmer, chairman of the Multicore Association’s MCAPI working group and CEO of PolyCore Software; and Markus Levy, president of the Multicore Association and chairman of Multicore Expo.
Softtalkblog: Since a lot of the technology is still evolving, isn’t it too early to begin standardisation?
SB: While multicore technology is relatively recent, multi-processing has been around for a long time and the basic concepts are well established. Standards take a long time to develop and establish, and have a better chance of succeeding if started before a variety of diverging de-facto standards emerge.
ML: Furthermore, the standards that MCA has and will develop will undoubtedly reflect and benefit multicore platforms for the long-term foreseeable future. These standards are based on primitives that can easily form the foundation of any multicore architecture.
Softtalkblog: What role does the MCAPI perform?
SB: MCAPI is an API for multicore communication providing source level portability, targeting closely distributed computing which is multiple cores on a chip and/or multiple processors on a board. Like sockets for networking, MCAPI provides an abstraction of the underlying multicore communications topology and simplifies code reuse.
Softtalkblog: How will programmers and device manufacturers implement it?
SB: They can implement MCAPI themselves or acquire MCAPI from vendors offering commercial products.
ML: MCAPI from the Multicore Association is a specification, and can be implemented in an infinite variety of ways, although at the base level they should all be compatible.
Softtalkblog: What role does the MRAPI perform?
SB: MRAPI is an API for multicore resource management providing source level portability, targeting closely distributed computing, which is multiple cores on a chip and/or multiple processors on a board. MRAPI expands the resource management concept found in operating systems on a single processor to heterogeneous (software & hardware) multicore systems.
Softtalkblog: Again, how will programmers and device manufacturers implement that?
SB: They can implement MRAPI themselves or get it from vendors offering commercial products.
ML: From the MCA perspective, programmers should encourage their OS vendors, processor vendors, and tool vendors to provide MRAPI as part of their offerings. This will allow the programmer to easily utilize the functionality of MRAPI.
Softtalkblog: What timescale do you envisage for live implementations using these standards?
SB: MCAPI implementations are already available, and have been available for more than two years. Productivity tools and runtimes are commercially available, and an open source implementation is available. There is an MRAPI example implementation available from the Multicore Association.
ML: Furthermore, numerous implementations of MCAPI have been developed by system developers and universities. As a matter of fact, several system developers have abandoned their proprietary mechanisms to replace them with MCAPI; one reason is because of the portability that MCAPI provides, but also because MCAPI contains all or most of the functionality that a system designer would need.
Softtalkblog: What other APIs are you working on, and how will they help?
SB: Other active working groups are virtualization, multicore programming practices and tools infrastructure. We are hoping to soon start a working group for MTAPI, a multicore task management API.
ML: Regarding the tools infrastructure (TIWG), we discovered that when migrating existing sequential software to multicore platforms or developing new parallel software, programmers must use a range of tools that include tracers, profilers, and analysis tools. Although mechanisms exist to support tool interoperability for embedded applications that utilize a single, integrated development environment, no standard exists to support the embedded multicore environment. To mitigate the issue of interoperability, the TIWG’s first year goal is to establish a trace data format standard. A subsequent goal will be to define interfaces between profilers and analysis/visualization tools. Meeting these goals will aid programmers searching for performance bottlenecks that limit the speed and capabilities of their multicore platforms.
Softtalkblog: A lot of people are interested in languages like Haskell and Scala today. Why did you choose C/C++ for the Multicore Programming Practices (MPP) guide?
SB: C and C++ are the dominating languages in the embedded software space. Many of the currently available and emerging approaches addressing multicore are extensions to those languages. There is need for multicore aware programming languages, but adoption takes a very long time and we have to find solutions to take advantage of multicore benefits for the short and intermediate term.
Softtalkblog: How can people help to shape the upcoming standards?
SB: By joining the Multicore Association and actively participate in the process.
ML: MCA has a growing membership with more and more companies actively participating. All working groups are open to any member. We also have one additional board membership seat available, which will allow an interested company to help to steer the overall direction of the organization.
Softtalkblog: Is it possible for non-members to send feedback or otherwise participate in your work?
SB: We appreciate input from non-members as well. There are Google groups for posting and they can contact any of the chair persons or Markus Levy directly with feedback.
ML: In our final review process, before finalizing our specifications, we also select a number of non-members to help in the review and provide feedback.
Softtalkblog: What is your vision for multicore programming, five years from now?
SB: There is no one solution that fits all requirements so there will be multiple mainstream programming models. The models that are standardized and well supported by tools stand the best chance to dominate. I foresee a trend towards multicore frameworks which include tools support, standardized, multicore software building blocks that abstract some of the complexities and allow the programmers to focus on adding value with their applications.
Softtalkblog: Sven and Markus, thank you for your time! I recommend you take a look at the Multicore Association’s website to see how you can contribute. If you’ve got any comments on this interview, feel free to leave them below.
Filed under: Multicore Tagged: | MCAPI, MRAPI, Multicore, Multicore Association, standards







[...] you might be interested to see this exclusive interview with the Multicore Association Lifting the lid on The Multicore Association [...]
[...] Thought you might be interested to see this exclusive interview with the Multicore Association Lifting the lid on The Multicore Association [...]
[...] my interview with Levy and Sven Brehmer, chairman of the MCAPI working group, I previously covered MCAPI and MRAPI, and the aims of the Multicore Association. You can find out more about the association and follow the progress on MTAPI at its [...]
[...] might remember I blogged previously about the Multicore Communication API (MCAPI), an API for multicore communication providing source level portability, and targeting closely [...]