We have developed an efficient, portable, parallel software infrastructure for structured adaptive mesh algorithms. It provides computational scientists with high-level tools that hide implementation details of parallelism and resource management. Such powerful software support is essential for the timely development of quality reusable numerical software. We are currently applying our adaptive mesh infrastructure to the solution of adaptive eigenvalue problems arising in materials design [6]. We also plan employ our infrastructure to address the hyperbolic partial differential equations of computational fluid dynamics.
Two distinguishing characteristics of our work are the concepts of structural abstraction and coarse-grain data parallelism, both borrowed from LPARX. Structural abstraction and first-class data decompositions enable our software to represent and manipulate refinement structures as language-level objects. In contrast, a language such as High Performance Fortran that supports compile-time data layout provides little freedom in the expression of irregular, run-time data distribution. Our model of coarse-grain data parallel numerical computation maps efficiently onto the current generation of message passing parallel architectures.
It is an open research question whether data parallel languages can efficiently support the irregular refinement structures employed by structured adaptive mesh algorithms. Previous implementations [3] have required uniform refinements to fit the fine-grain data parallel model. Our experiments in 3d indicate that such a restriction results in costly over-refinement and a significant loss in computational performance. Thus, the efficient, portable implementation of structured adaptive mesh methods remains an outstanding challenge for the data parallel community.