For many years, Embedded.com columnist Jack Ganssle has voiced his skepticism about some of the advantages claimed for multicore architectures in embedded apps in such blogs as “The Nulticore effect,” “Nulticore continued,” “Multicore madness,” and ”Multicore: hype or reality.”
In his most recent blog on “Will Moore’s Law doom multicore?” he drills even deeper and provides an analysis of a pessimistic report from researchers at Sandia National Laboratories. Their conclusion: multicore just does not scale very well when more than just a few cores per device are used, especially as it relates to power-efficiency.
But while he has some questions about the researchers’ underlying methodologies and their choice of target processor architectures, he nevertheless agrees with their pessimistic conclusions. Despite that however, he remains upbeat and concludes by writing: “I for one am optimistic that some cool and unexpected inventions will continue to drive computer performance on its historical upward trajectory. “
In a similar and more detailed analysis of the various hardware approaches to multicore SoC design in “Overcoming the CPU performance wall , “ Julio Diez Ruiz also remains optimistic. But he places his hopes on current software development approaches, rather than future inventions.
Some of these approaches are discussed in some of the design articles included in this week’s Embedded Tech Focus Newsletter on “Multicore programming challenges .” And as noted in “DESIGN West: Update your multicore software skills ,” additional up to date information is available in a number of classes at the Spring 2013 Embedded Systems Conference at DESIGN West , April 22-25 in San Jose, Ca.
[ Click here to register for DESIGN West 2013 ,April 22-25 at the San Jose McEnery Convention Center. Options rangefrom an All-Access Pass — which includes Black Hat (security)Conference Session to Free Expo Admission].
Most of the methods described in these articles and classes do not require that embedded developers totally abandon the use of the sequential and procedural languages that have become second nature to them. But they will all require much greater attention to detail and their use within a number of programmatic limits.
“Introduction to the Multicore Programming Practices Guide” describes an approach to multicore programming that uses sequential C, but only within very carefully defined parameters which they describe in their guide. In “A portable OpenMP runtime library based on MCAPI/MRAPI “ the authors describe how the high performance computing OpenMP C-language extensions can be used in embedded apps, but within the limits of the Multicore Association’s MCAPI and MTAPI. And in “Using Java to deal with multicore programming complexity,” Atego’s Kelvin Nilsen describes how to use the C and Java languages together to do parallel code development without straying too far from traditional C methodologies.
Other in depth articles on such topics are contained in Embedded.com’s Multicore Collection, a ten year archive of articles on multicore hardware and software development. Of these, there are several that I recommend:
“Retargeting embedded software stacks for many-core systems,” byDr. Sumant Tambe, RTI, and Dr. James Anderson, University of North Carolina.
“Use OpenMP for programming parallel threads in multicore apps ,” by Shameem Akhter and Jason Roberts, Intel Corp.
“Optimization Techniques for Multicore Processor s , “ by Max Domeika, Intel Corp.
“Transitioning to multicore processing,” by Rob Oshana and Shuai Wang, Freescale Semiconductor
“Multicore’s fourth semaphore: the multiple reader/writer lock , ” by David Kalinsky, Kalinsky Associates
A number of the authors mentioned here will be attending or teaching classes at the Spring 2013 DESIGN West , so be sure to register to attend . Maybe you will get a chance to talk with them directly about such issues.
Embedded.com Site Editor Bernard Cole is also editor of the twice-a-week Embedded.com newsletters as well as a partner in the TechRite Associates editorial services consultancy. He welcomes your feedback. Send an email to , or call 928-525-9087.