Multicore software developers share their experiences at the Multicore Expo.
Multicore debug is a hard problem. With many of the same requirements as single-core debug, multicore debug is faced with the exponentially added complexity of dealing with asynchronous operation of the on-chip cores, making it difficult to correlate the code running on different cores with all of their SoC interactions. Next week, at the Multicore Expo in San Jose, Calif., a panel of software developers will share their experiences, explaining what specific techniques have been most effective and what have failed to meet expectations, and assert where tools suppliers must improve.
According to panel moderator, Dave Kleidermacher, CTO of Green Hills Software, "There are widely differing opinions regarding the state of multicore debugging technology and how well it is addressing the evolving needs of software developers." But the multicore applications are typically more tightly coupled than with single core, and concurrency problems, such as race conditions, are more likely to occur, but not necessarily easier to find. Furthermore, the sharing of on-chip peripherals makes it trickier to catch potential arbitration issues and find all corner cases.
Despite the looming debug issues, Kleidermacher tries to paint a more optimistic perspective claiming that "tools are far more advanced and useful than many developers realize and/or have experienced, mostly due to a lack of awareness of the latest and greatest techniques. During this panel discussion, attendees should expect to receive a strong and practical dose of multicore development reality and advice."
The panel, entitled "Insightful Debugging or Disastrous Delusions," is set for April 28 at 4:45 p.m. Panelists will include four expert developers representing different embedded applications: Tom Dickens, Assoc. Technical Fellow, Boeing; Dominique Toupin, developer tool manager, Ericsson; Bharat Mota, director of engineering, software products division, Freescale; and Rajan Goyal, distinguished engineer, multicore virtualization, Cavium