Run-time Data Distribution for Block-Structured Applications on Distributed Memory Computers

In many scientific applications running on parallel computers, efficient data decompositions exhibit a block structure which can be regular or irregular. We, present a run-time strategy for both regular and irregular block-structured applications which provides a three-stage mapping including alignment, first-class decomposition objects, and block data movement. We have implemented this strategy using a small set of primitive operations, and present these along with performance results. In contrast to data parallel Fortran dialects, our system executes completely at run-time and supports coarse-grained user-defined data decompositions.

[1]  Barbara M. Chapman,et al.  High performance Fortran without templates: an alternative model for distribution and alignment. , 1993, PPOPP '93.

[2]  Joel H. Saltz,et al.  Efficient runtime support for parallelizing block structured applications , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[3]  A. Malony,et al.  Implementing a parallel C++ runtime system for scalable parallel systems , 1993, Supercomputing '93.

[4]  Scott B. Baden,et al.  A robust parallel programming model for dynamic non-uniform scientific computations , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[5]  Lawrence Snyder,et al.  ZPL: An Array Sublanguage , 1993, LCPC.

[6]  Shahid H. Bokhari,et al.  A Partitioning Strategy for Nonuniform Problems on Multiprocessors , 1987, IEEE Transactions on Computers.

[7]  P. Colella,et al.  Local adaptive mesh refinement for shock hydrodynamics , 1989 .

[8]  Andrea C. Arpaci-Dusseau,et al.  Parallel programming in Split-C , 1993, Supercomputing '93. Proceedings.

[9]  Barbara M. Chapman,et al.  Dynamic data distributions in Vienna Fortran , 1993, Supercomputing '93. Proceedings.

[10]  Geoffrey C. Fox,et al.  Compiling distribution directives in a Fortran 90D compiler , 1993, Proceedings of 1993 5th IEEE Symposium on Parallel and Distributed Processing.