Parallel Language Support for Multigrid Algorithms
Bradford L. Chamberlain, Steven J. Deitz, Lawrence Snyder · 2001
Multigrid algorithms are a computational paradigm that enjoy widespread use in the scientific community. While parallel multigrid applications have been in use for quite some time, parallel language support for features common to multigrid algorithms has been lacking. This forces scientists either to express their computations in high-level terms without knowing the parallel impact, or to explicitly manage all the details by hand, thereby diverting their attention from the algorithm itself. In this paper, we enumerate properties that would be desirable for any parallel language that hopes to support multigrid application development. We then explain how these properties influenced the design of support for hierarchical arrays in ZPL, our array-based parallel programming language. We describe the implementation of these features in the ZPL compiler and its runtime system. In addition, we show that our approach performs competitively with hand-coded Fortran + MPI for the NAS MG benchmark, outperforming it on 256 processors. In addition, a static comparison of the two codes demonstrates ZPL to be the more concise, readable, and flexible implementation. 1