Parallel algorithm and parallel programming: from specialty to generality as well as software reuse

Parallel algorithm and parallel programming are important components of application software development on supercomputers, especially for numerical simulations. In recent years, in line with the rapid increase in the performance capabilities of supercomputers, these components have become increasingly challenging. Therefore, it is essential to produce application software that reuses these components in order to efficiently utilize supercomputers. In this paper, we draw on our experiences to argue for the necessity of promoting parallel algorithms and parallel programming research from a specialty to a general research field, as well as presenting similar arguments regarding software reuse. We also discuss key technologies that are required. Our work is particularly useful for the development of high performance application software for numerical simulations.