Programming tools for High Performance Computing are lagging behind the tools that have improved the productivity of desktop programmers. The increasing complexity of HPC codes, the growing number of cores that they must utilize, their long life-span, and the plethora of desirable source code optimizations and hardware platforms make HPC codes hard to maintain. Refactoring tools can enable HPC programmers to explore the space of performance optimizations and parallel constructs safely and efficiently.
This position paper presents our view on how HPC programming tools should evolve, a growing catalog of refactorings for HPC programmers, and reports on our initial effort to automate some of these refactorings.




  title={Bringing the HPC Programmer's IDE into the 21st Century through Refactoring},
  author={Fredrik Kjolstad and Danny Dig and Marc Snir},
  journal={SPLASH 2010 Workshop on Concurrency for the Application Programmer},