Bridging the Parallelization Gap: Automating Parallelism Discovery and Planning
Multicore processors have forced mainstream programmers to rethink the way they design software. Parallelism will be the avenue for performance gains in these multicore processors but will require new tools and methodologies to gain full acceptance by everyday programmers. As a step towards improved parallelization tools, the authors propose a parallelization taxonomy that categorizes tools based on which of five fundamental stages of parallelization they assist with. Based on this taxonomy, they find that many popular parallelization tools focus on the final stages, leaving the programmer to perform the initial stages without assistance.