The Community for Technology Leaders
Green Image
<p><it>Abstract</it>—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 multiblock 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.</p>
Compiler support, distributed memory parallel machines, High-Performance Fortran, multiblock codes, multigrid codes, runtime support.
Joel Saltz, Alan Sussman, Gagan Agrawal, "An Integrated Runtime and Compile-Time Approach for Parallelizing Structured and Block Structured Applications", IEEE Transactions on Parallel & Distributed Systems, vol. 6, no. , pp. 747-754, July 1995, doi:10.1109/71.395403
92 ms
(Ver 3.3 (11022016))