An Integrated Runtime and Compile-Time Approach for Parallelizing Structured and Block Structured Applications

In compiling applications for distributed memory machines, runtime analysis is required when data to be communicated cannot be determined at compile-time. One such class of applications requiring runtime analysis is block structured codes. These codes employ multiple structured meshes, which may be nested (for multigrid codes) and/or irregularly coupled (called multiblock or irregularly coupled regular mesh problems). In this paper, we present runtime and compile-time analysis for compiling such applications on distributed memory parallel machines in an efficient and machine-independent fashion. We have designed and implemented a runtime library which supports the runtime analysis required. The library is currently implemented on several different systems. We have also developed compiler analysis for determining data access patterns at compile time and inserting calls to the appropriate runtime routines. Our methods can be used by compilers for HPF-like parallel programming languages in compiling codes in which data distribution, loop bounds and/or strides are unknown at compile-time. To demonstrate the efficacy of our approach, we have implemented our compiler analysis in the Fortran 90D/HPF compiler developed at Syracuse University. We have experimented with a multi-bloc Navier-Stokes solver template and a multigrid code. Our experimental results show that our primitives have low runtime communication overheads and the compiler parallelized codes perform within 20% of the codes parallelized by manually inserting calls to the runtime library. >

[1]  Joel H. Saltz,et al.  A manual for the multiblock PARTI runtime primitives revision 4 , 1993 .

[2]  Stephen F. McCormick,et al.  Multilevel projection methods for partial differential equations , 1992, CBMS-NSF regional conference series in applied mathematics.

[3]  Jack Dongarra,et al.  Pvm 3 user's guide and reference manual , 1993 .

[4]  Barbara M. Chapman,et al.  Programming in Vienna Fortran , 1992, Sci. Program..

[5]  Ken Kennedy,et al.  Compiler Analysis for Irregular Problems in Fortran D , 1992, LCPC.

[6]  Charles Koelbel,et al.  Supporting shared data structures on distributed memory architectures , 1990, PPOPP '90.

[7]  Ken Kennedy,et al.  Compiling Fortran D for MIMD distributed-memory machines , 1992, CACM.

[8]  Ken Kennedy,et al.  Evaluation of compiler optimizations for Fortran D on MIMD distributed memory machines , 1992, ICS '92.

[9]  Ken Kennedy,et al.  Compiler optimizations for Fortran D on MIMD distributed-memory machines , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[10]  von Hanxledenreinhard D Newsletter #9 Handling Irregular Problems with Fortran D | a Preliminary Report Handling Irregular Problems with Fortran D | a Preliminary Report , 1993 .

[11]  H. P. Zima,et al.  Compiling for distributed-memory systems : Languages and compilers , 1993 .

[12]  Ken Kennedy,et al.  An Implementation of Interprocedural Bounded Regular Section Analysis , 1991, IEEE Trans. Parallel Distributed Syst..

[13]  Geoffrey C. Fox,et al.  Runtime array redistribution in HPF programs , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[14]  Peter Brezany,et al.  Vienna Fortran - A Language Specification. Version 1.1 , 1992 .

[15]  Naomi H. Naik,et al.  The improved robustness of multigrid elliptic solvers based on multiple semicoarsened grids , 1993 .

[16]  Shahid H. Bokhari Communication overhead on the Intel iPSC-860 hypercube , 1990 .

[17]  Joel H. Saltz,et al.  Slicing Analysis and Indirect Accesses to Distributed Arrays , 1993, LCPC.

[18]  Rohit Mathur,et al.  Sub-grid representation of emission source clusters in regional air quality modeling , 1992 .

[19]  J. J. Quirk,et al.  An adaptive grid algorithm for computational shock hydrodynamics , 1991 .

[20]  Joel H. Saltz,et al.  Distributed memory compiler methods for irregular problems—data copy reuse and runtime partitioning , 1992 .

[21]  K. Kennedy,et al.  Preliminary experiences with the Fortran D compiler , 1993, Supercomputing '93.

[22]  Ken Kennedy,et al.  Software support for irregular and loosely synchronous problems , 1992 .

[23]  Edward B. Parlette,et al.  Development of a flexible and efficient multigrid-based multiblock flow solver; aiaa-93-0677 , 1993 .

[24]  Ken Kennedy,et al.  Advanced compilation techniques for fortran d , 1993 .

[25]  William L. Briggs,et al.  A multigrid tutorial , 1987 .

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

[27]  Geoffrey C. Fox,et al.  Compiling Fortran 90D/HPF for Distributed Memory MIMD Computers , 1994, J. Parallel Distributed Comput..

[28]  Guy L. Steele,et al.  The High Performance Fortran Handbook , 1993 .

[29]  Thomas R. Gross,et al.  Generating Communication for Array Statement: Design, Implementation, and Evaluation , 1994, J. Parallel Distributed Comput..

[30]  John R. Gilbert,et al.  Generating local addresses and communication sets for data-parallel programs , 1993, PPOPP '93.

[31]  Scott B. Baden,et al.  An Implementation of the LPAR Parallel Programming Model for Scientific Computations , 1993, PPSC.

[32]  M. Norman,et al.  ZEUS-2D: A radiation magnetohydrodynamics code for astrophysical flows in two space dimensions. I - The hydrodynamic algorithms and tests. II - The magnetohydrodynamic algorithms and tests , 1992 .

[33]  Zhiyu Shen,et al.  An Empirical Study of Fortran Programs for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[34]  Daniel J. Quinlan,et al.  P++, a C++ Virtual Shared Grids Based Programming Environment for Architecture-Independent Development of Structured Grid Applications , 1992, CONPAR.

[35]  M. Norman,et al.  ZEUS-2D : a radiation magnetohydrodynamics code for astrophysical flows in two space dimensions. II : The magnetohydrodynamic algorithms and tests , 1992 .

[36]  Charles Koelbel Compile-time generation of regular communications patterns , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[37]  Stephen F. McCormick,et al.  Multilevel adaptive methods for partial differential equations , 1989, Frontiers in applied mathematics.

[38]  C. Justice,et al.  Global land cover classification by remote sensing: present capabilities and future possibilities , 1991 .

[39]  Mehmet T. Odman,et al.  A multiscale finite element pollutant transport scheme for urban and regional modeling , 1991 .

[40]  Anne Rogers,et al.  Compiling for Distributed Memory Architectures , 1994, IEEE Trans. Parallel Distributed Syst..

[41]  Michael Gerndt,et al.  Updating Distributed Variables in Local Computations , 1990, Concurr. Pract. Exp..

[42]  Christopher A. Atwood,et al.  Selected computations of transonic cavity flows , 1993 .

[43]  R. Meakin Moving body overset grid methods for complete aircraft tiltrotor simulations , 1993 .

[44]  John Vanrosendale,et al.  Mapping robust parallel multigrid algorithms to scalable memory architectures , 1993 .

[45]  Sandeep K. S. Gupta,et al.  On Compiling Array Expressions for Efficient Execution on Distributed-Memory Machines , 1993, 1993 International Conference on Parallel Processing - ICPP'93.

[46]  Joel H. Saltz,et al.  ICASE Report No . 92-12 / iVG / / ff 3 J / ICASE THE DESIGN AND IMPLEMENTATION OF A PARALLEL UNSTRUCTURED EULER SOLVER USING SOFTWARE PRIMITIVES , 2022 .

[47]  Ken Kennedy,et al.  Fortran D Language Specification , 1990 .

[48]  Marina C. Chen,et al.  Compiling Communication-Efficient Programs for Massively Parallel Machines , 1991, IEEE Trans. Parallel Distributed Syst..

[49]  Charles Koelbel,et al.  Compiling Global Name-Space Parallel Loops for Distributed Execution , 1991, IEEE Trans. Parallel Distributed Syst..

[50]  M. Berger,et al.  Adaptive mesh refinement for hyperbolic partial differential equations , 1982 .

[51]  William R. Vandalsem,et al.  Numerical simulation of a powered-lift landing , 1993 .

[52]  James M. Stichnoth Efficient Compilation of Array Statements for Private Memory Multicomputers , 1993 .

[53]  Hans P. Zima,et al.  Compiling for distributed-memory systems , 1993 .