Multiple data parallelism with HPF and KeLP
High Performance Fortran (HPF) is an effective language for implementing regular data parallel applications on distributed memory architectures, but it is not well suited to irregular, block-structured applications such as multiblock and adaptive mesh methods. A solution to this problem is to use an SPMD program to coordinate multiple concurrent HPF tasks, each operating on a regular subgrid of the multiblock domain. This paper presents such a system, in which the coordination layer is provided by the C++ class library KeLP. We describe the KeLPHPF implementation and programming model, and show an example KeLPHPF multiblock solver together with performance results.
data parallelism high performance fortran distributed memory c++ multiblock applications