Single Assignment C: HP^2 programming for heterogeneous concurrent architectures

The range of architectures used in high-performance computing is quickly expanding and at the same time lifetimes of platforms are decreasing. This shift threatens the return on investment for tuning applications to specific architectures and platforms, which until now was the prevailing development model in high-performance computing. As a result, the reusability of software components and the ability to execute existing code efficiently on existing and future architectures come to be key concerns in high-performance computing. This observation lies at the heart of HP^2 programming: to combine high-performance with high-productivity. With Single Assignment C and its attending compiler technology, we have developed a programming system that puts HP^2 to practice.