Run-time and compile-time support for adaptive irregular problems

In adaptive irregular problems, data arrays are accessed via indirection arrays, and data access patterns change during computation. Parallelizing such problems on distributed memory machines requires support for dynamic data partitioning, efficient preprocessing and fast data migration. This paper describes CHAOS, a library of efficient runtime primitives that provides such support. To demonstrate the effectiveness of the runtime support, two adaptive irregular applications have been parallelized using CHAOS primitives: a molecular dynamics code (CHARMM) and a code for simulating gas flows (DSMC). We have also proposed minor extensions to Fortran D which would enable compilers to parallelize irregular for all loops in such adaptive applications by embedding calls to primitives provided by a runtime library. We have implemented our proposed extensions in the Syracuse Fortran 90D/HPF prototype compiler, and have used the compiler to parallelize kernels from two adaptive applications.<<ETX>>

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

[2]  M. Gerndt,et al.  SUPERB support for irregular scientific computations , 1992, Proceedings Scalable High Performance Computing Conference SHPCC-92..

[3]  Joel H. Saltz,et al.  A manual for the CHAOS runtime library , 1995 .

[4]  David M. Nicol,et al.  Improved Algorithms for Mapping Pipelined and Parallel Computations , 1991, IEEE Trans. Computers.

[5]  Geoffrey C. Fox,et al.  Runtime Support and Compilation Methods for User-Specified Irregular Data Distributions , 1995, IEEE Trans. Parallel Distributed Syst..

[6]  Tao Yang,et al.  PYRROS: static task scheduling and code generation for message passing multiprocessors , 1992 .

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

[8]  Scott B. Baden,et al.  Programming Abstractions for Dynamically Partitioning and Coordinating Localized Scientific Calculations Running on Multiprocessors , 1991, SIAM J. Sci. Comput..

[9]  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.

[10]  Harry Berryman,et al.  Multiprocessors and run-time compilation , 1991, Concurr. Pract. Exp..

[11]  Monica S. Lam,et al.  The cache performance and optimizations of blocked algorithms , 1991, ASPLOS IV.

[12]  Joel H. Saltz,et al.  Parallel preconditioned iterative methods for the compressible Navier-Stokes equations , 1990 .

[13]  Dimitri J. Mavriplis Three dimensional unstructured multigrid for the Euler equations , 1991 .

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

[15]  Joel H. Saltz,et al.  Adaptive runtime support for direct simulation Monte Carlo methods on distributed memory architectures , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[16]  Hans Robert Kalbitzer Max-Planck-Scientist offers European Perspective on Protein NMR Databases: State-of-the-Art and Future Directions in Europe , 1992 .

[17]  D WilliamsRoy Performance of dynamic load balancing algorithms for unstructured mesh calculations , 1991 .

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

[19]  G. Bird Molecular Gas Dynamics and the Direct Simulation of Gas Flows , 1994 .

[20]  Harry Berryman,et al.  Runtime Compilation Methods for Multicomputers , 1991, ICPP.

[21]  B. Nour-Omid,et al.  Solving finite element equations on concurrent computers , 1987 .

[22]  Richard G. Wilmoth Direct simulation Monte Carlo analysis of rarefied flows on parallel processors , 1991 .

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

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

[25]  Horst D. Simon,et al.  Partitioning of unstructured problems for parallel processing , 1991 .

[26]  Alok Choudhary,et al.  Runtime compilation techniques for data partitioning and communication schedule reuse , 1993, Supercomputing '93.

[27]  Joel H. Saltz,et al.  Principles of runtime support for parallel processors , 1988, ICS '88.

[28]  Ken Kennedy,et al.  Computer support for machine-independent parallel programming in Fortran D , 1992 .

[29]  Robert P. Weaver,et al.  The DINO Parallel Programming Language , 1991, J. Parallel Distributed Comput..

[30]  M. Karplus,et al.  CHARMM: A program for macromolecular energy, minimization, and dynamics calculations , 1983 .

[31]  Lee-Chung Lu,et al.  Parallelizing Loops with Indirect Array References of Pointers , 1991, LCPC.

[32]  Joel H. Saltz,et al.  Communication Optimizations for Irregular Scientific Computations on Distributed Memory Architectures , 1994, J. Parallel Distributed Comput..

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

[34]  D LamMonica,et al.  The cache performance and optimizations of blocked algorithms , 1991 .