MULTICORE PROGRAMMING PRACTICES GROUP (MPP™)
The MPP standardized "best practices" guide is written specifically for engineers and engineering managers of companies considering or implementing a development project involving multicore processors and favoring use of existing multicore technology. There is an important need to better understand how today's C/C++ code may be written to be "multicore ready", and this was accomplished under the influence of the MPP working group. The guide will enable you to a) produce higher performing software; b) reduce bug rate due to multicore software issues; c) develop portable multicore code which can be targeted at multiple platforms; d) reduce the multicore programming learning curve and speed up development time; and e) tie into the current structure and roadmap of the Multicore Association's API infrastructure.
Overview of the Multicore Programming Practices
In this era of multicore processors the responsibility for performance gains is being shifted onto the software developer who must direct how work is distributed amongst the cores. Software development tools and technologies have been introduced with the aim of helping developers obtain maximum performance benefit with minimal effort, nevertheless, one potential challenge that may hinder developers is the conflict between an intrinsic quality of developing for multicore processors and the inertia of existing software. Obtaining performance increases requires developers to invest in significant software modifications to in effect, transform current sequential applications into parallel ones. This modification is nontrivial and introduces new challenges spanning the traditional development phases of program analysis, design, implementation, debug, and performance tuning.
A developer moving to multicore processors may not have the luxury of taking on a new parallel programming language or even re-architecting the application to support widespread concurrency. Instead, an evolutionary approach to enabling multicore processors is being adopted by many development projects in the computing industry today. This evolutionary approach employs existing programming tools and technology and a systematic method of introducing and debugging concurrency in existing software. The Multicore Programming Practices (MPP) guide is a detailed set of best practices for employing this evolutionary approach to multicore development.
The Multicore Programming Practices working group has completed its project.
- Rob Oshana, Director, Freescale Semiconductor
- David Stewart, CEO, CriticalBlue
Primary Contributing Members
CAPS entreprise, CriticalBlue, Freescale, Intel, Mentor Graphics, nCore Systems, Wind River, Carnegie Mellon University