Designers draft multicore programming guide

SAN JOSE, Calif.  The Multicore Association is kicking off an effort to define best programming practices for embedded multicore processors. The group hopes within a year to define and create a guide to handling the thorniest problems in the growing arena of parallel software.

"I see this as the 'Read Me' document for anyone doing multicore programming," said David Stewart, co-chair of the new working group and chief executive of CriticalBlue (San Jose), a provider of software design tools. "We'll try to get a consensus from a significant cross section of the industry on what are the top 10 or 20 issues and the best ways to handle them," he added.

Companies participating in the effort include Freescale, Imperas, Intel, Nokia Siemens Networks, PolyCore Software, Texas Instruments and WindRiver. The group will hold an open meeting at the Design Automation Conference in Anaheim on June 10 to get broad input on the issues.

"We expect this could grow our membership because this is a key concern both for companies working with homogeneous and heterogeneous multicore processors," said Markus Levy, president of the Multicore Association.

The group will focus at least initially on issues using C and C++. "We are trying to approach this from a commercial and practical perspective of people trying to write code today," said Levy.

A handful of research centers sprouted up at Berkeley, Stanford and elsewhere recently to try to define new programming models and languages beyond C.

"There's a wide diversity of opinions as to how that will pan out, so it would be defocusing to try to address it," said Stewart. "The key thing for us is looking at what people are working on today."

Stewart said the group is likely to address issues such as how to tackle code dependencies, inter-process communications and race conditions. "There are a lot of issues that are implementation independent," he said.

CriticalBlue, Imperas, Intel and Nokia Siemens Networks have already made contributions to the working group. CriticalBlue's contribution included a methodology framework and code examples based on its research.

The five-year-old company has tools that can analyze applications running mainly on ARM processors. The tools identify processes suitable to offload from the host, then automatically generate RTL and microcode to create co-processors to accelerate the work.

The company worked through a number of parallel programming issues as part of an effort to define a multicore version of its product that could coordinate the efforts of multiple co-processors.

The new group is one of several ongoing efforts at the Multicore Association. The group recently finished work on a standard message-passing API that will be published on its Web site soon.

Other groups are defining APIs for resource and task management. The association is also considering an effort to define an API for hypervisors that handle virtualization as an extension of work on a hypervisor benchmark in the EEMBC consortium.