Making Parallel Programming Synonymous with Programming
For many decades, single core technology ruled the computing industry, collaborating with a sequential programming interface to serve the vast majority of applications. Unfortunately, single core technology has hit the power wall and will no longer be able to keep up with the next generation, human-centric computing demands of mass-market client and business applications.
Future performance increases must largely come from increasing the number of processors (or cores) on a die—rather than making a single core go faster. After decades of sequential computing, this historic shift to multicore processors changes the programming landscape by exposing parallelism to the programmer. Yet, as practiced today, parallel programming for the client is a difficult task performed by few programmers—resulting in a lack of trained manpower to leverage ever-increasing hardware performance potential.
If every computer will be a parallel computer, most programs must execute in parallel and most programming teams must be able to develop parallel programs—a daunting goal given the challenges facing today's programmers. To make parallelism truly universal, we must move beyond current bug-prone parallel programming models to an ecosystem that reduces opportunities for errors, while exploiting the full performance potential of parallelism. With funding and support from Intel, I2PC at Illinois is tackling one of the most complex problems facing industry today—making parallel programming synonymous with programming.
I2PC Illinois welcomes your feedback on parallel computing research and education initiatives outlined on this website. Comments and suggestions can be sent to the I2PC team.