This Article 
 Bibliographic References 
 Add to: 
An Integrated Runtime and Compile-Time Approach for Parallelizing Structured and Block Structured Applications
July 1995 (vol. 6 no. 7)
pp. 747-754

Abstract—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.

[1] S. Bokhari,“Communication overhead on the Intel iPSC-860 hypercube,” Interim Report 10, ICASE, NASA Langley Research Center, May 1990.
[2] Z. Bozkus, A. Choudhary, G. Fox, T. Haupt, S. Ranka, and M.-Y. Wu, "Compiling Fortran 90D/HPF for Distributed Memory MIMD Computers," J. Parallel and Distributed Computing, vol. 21, no. 1, pp. 15-26, Apr. 1994.
[3] W. Briggs,A Multigrid Tutorial. SIAM, 1987.
[4] S. Chatterjee,J.R. Gilbert,F.J.E. Long,R. Schreiber,, and S.-H. Teng,“Generating local addresses and communication sets for data-parallelprograms,” Proc. Fourth ACM SIGPLAN Symp. Principles and Practice of Parallel Programming (PPOPP), ACM SIGPLAN Notices, vol. 28, no. 7, pp. 149-158, May 1993.
[5] A. Choudhary,G. Fox,S. Hiranandani,K. Kennedy,C. Koelbel,S. Ranka,, and J. Saltz,“Software support for irregular and loosely synchronous problems,” Computing Systems in Engineering, vol. 3, nos. 1-4, pp. 43-52, 1992. Paper presented at the Symp. on High-PerformanceComputing for Flight Vehicles, Dec. 1992.
[6] R. Das,J. Saltz,, and R. v. Hanxleden,“Slicing analysis and indirect access to distributed arrays,” Proc. Sixth Workshop Languages and Compilers for Parallel Computing, pp. 152–168, Springer-Verlag, Aug. 1993.
[7] “Survey of principal investigators of grand challenge applications,” Workshop on Grand Challenge Applications and Software Technology, May 1993.
[8] M. Gerndt,“Updating distributed variables in local computations,” Concurrency: Practice and Experience, vol. 2, pp. 171–193, 1990.
[9] S.K.S. Gupta,S.D. Kaushik,S. Mufti,S. Sharma,C.-H. Huang,, and P. Sadayappan,“On compiling array expressions for efficient execution ondistributed memory machines,” Proc. 1993 Int’l Conf. Parallel Processing, Aug. 1993.
[10] R. v. Hanxleden., Handling irregular problems with Fortran D-a preliminary report,” Proc. Fourth Workshop Compilers for Parallel Computers, Delft, The Netherlands, Dec. 1993. Also available as CRPC Tech. Report CRPC-TR93339-S.
[11] S. Hiranandani,K. Kennedy,J. Mellor-Crummey,, and A. Sethi,“Advanced compilation techniques for Fortran D,” Tech. Report CRPC-TR 93338-S, Center for Research in Parallel Computation, Oct. 1993.
[12] S. Hiranandani, K. Kennedy, and C.-W. Tseng, "Compiling Fortran D for MIMD Distributed-Memory Machines," Comm. ACM, vol. 35, no. 8, pp. 66-80, Aug. 1992.
[13] High Performance Fortran Language Specification. version 1.1 (draft), Sept. 1994.
[14] C. Koelbel, D. Loveman, R. Schreiber, G. Steele Jr., and M. Zosel, The High Performance Fortran Handbook. MIT Press, 1994.
[15] C. Koelbel, “Compiler-Time Generation of Communication for Scientific Programs,” Supercomputing '91, pp. 101-110, Nov. 1991.
[16] S.R. Kohn and S.B. Baden,“An implementation of the LPAR parallel programming model for scientific computations,” Proc. Sixth SIAM Conf. Parallel Processing for Scientific Computing, pp. 759-766, SIAM, Mar. 1993.
[17] M. Lemke and D. Quinlan,“P++, a C++ virtual shared grids based programmingenvironment for architecture-independent development of structured gridapplications,” Tech. Report 611, GMD, Feb. 1992.
[18] J. Li and M. Chen, “Compiling Communication Efficient Programs for Massively Parallel Machines,” J. Parallel and Distributed Computers, vol. 2, no. 3, pp. 361-376, 1991.
[19] S. McCormick,Multilevel Projection Methods for Partial Differential Equations. SIAM, 1992.
[20] A. Overman and J. van Rosendale,“Mapping robust parallel multigrid algorithms to scalable memory architectures,” Proc.’93 Copper Mountain Conf. Multigrid Methods, Apr. 1993.
[21] A. Rogers and K. Pingali,“Compiling for distributed memory architectures,” IEEE Trans. Parallel and Distributed Systems, vol. 5, no. 3, pp. 281-298, Mar. 1994.
[22] J.M. Stichnoth,“Efficient compilation of array statements for private memory multicomputers,” Tech. Report CMU-CS-93-109, School of Computer Science, Carnegie Mellon Univ., Feb. 1993.
[23] A. Sussman and J. Saltz, A Manual for the Multiblock PARTI Runtime Primitives Version 4, Tech. Report CS-TR-3070 and UMIACS-TR-93-36, Univ. of Maryland, College Park, May 1993.
[24] C. Tseng and S. Hiranandani, and K. Kennedy, "Preliminary Experiences with the Fortran D Compiler," Proc. Supercomputing '93, pp. 338—350.Portland, Ore., Nov. 1993.
[25] V.N. Vatsa,M.D. Sanetrik,, and E.B. Parlette,“Development of a flexible and efficient multigrid-based multiblock flow solver,” AIAA-93-0677, Proc. 31st Aerospace Sciences Meeting and Exhibit, Jan. 1993.
[26] H. Zima and B. Chapman, "Compiling for Distributed-Memory Systems," Proc. IEEE, Special Section on Languages and Compilers for Parallel Machines, IEEE Press, Piscataway, N.J., Feb. 1993, pp. 264-287.

Index Terms:
Compiler support, distributed memory parallel machines, High-Performance Fortran, multiblock codes, multigrid codes, runtime support.
Gagan Agrawal, Alan Sussman, Joel Saltz, "An Integrated Runtime and Compile-Time Approach for Parallelizing Structured and Block Structured Applications," IEEE Transactions on Parallel and Distributed Systems, vol. 6, no. 7, pp. 747-754, July 1995, doi:10.1109/71.395403
Usage of this product signifies your acceptance of the Terms of Use.