Association for Computing Machinery
High Performance Computing (HPC) applications used to run on supercomputers with vector or special purpose processors. Multi-core platforms have proven themselves able to accelerate numerous HPC applications. But programming data intensive applications on such platforms is a hard, and not yet solved, problem. Not only do modern processors favor compute-intensive code, they also have diverse architectures and incompatible programming models. And even after making a difficult platform choice, extensive programming effort must be invested with an uncertain performance outcome.