A parallel software infrastructure for dynamic block-irregular scientific calculations

Dear Sir or Madam, will you read my book? It took me years to write, will you take a look?--John Lennon and Paul McCartney, "Paperback Writer" (DIAGRAM, TABLE OR GRAPHIC OMITTED...PLEASE SEE DAI) The accurate solution of many problems in science and engineering requires the resolution of unpredictable, localized physical phenomena. Such applications may involve the solution of complicated, time-dependent partial differential equations such as those in materials design, computational fluid dynamics, astrophysics, and molecular dynamics. The important feature of these numerical problems is that some portions of the computational domain require higher resolution, and thus more computational effort, than others. Parallel supercomputers offer the power to solve many of these computationally intensive tasks; however, these applications are particularly challenging to implement on parallel architectures because they rely on dynamic, complicated, irregular structures with dynamic and irregular communication patterns. Current parallel software technology does not yet afford a solution, and new programming abstractions--along with the accompanying run-time support--are needed. We have developed a parallel software infrastructure to simplify the implementation of dynamic, irregular, block-structured scientific computations on high-performance parallel supercomputers. Our software infrastructure provides computational scientists with high-level, domain-specific tools that hide low-level details of the parallel hardware. It is portable across a wide range of parallel architectures. At the center of our infrastructure is the LPARX parallel programming system. LPARX introduces the concept of "structural abstraction," which enables applications to dynamically manipulate irregular data decompositions as language-level objects. LPARX provides a framework for creating decompositions that may be tailored to meet the needs of a particular application. Building on the LPARX abstractions, we have developed application programmer interfaces (APIs) for two important classes of applications: structured adaptive mesh methods and particle calculations. These APIs enable scientists to concentrate on the mathematics and the physics of their application; APIs provide high-level software tools that hide underlying implementation details. Our parallel software infrastructure has enabled computational scientists to explore new approaches to solving a variety of problems, and it has reduced the development time of challenging numerical applications. Indeed, we have applied our structured adaptive mesh API to the adaptive solution of eigenvalue problems in materials design and our particle API to a 3d smoothed particle hydrodynamics application in astrophysics.

[1]  Geoffrey C. Fox,et al.  Interpreting the performance of HPF/Fortran 90D , 1994, Proceedings of Supercomputing '94.

[2]  Isidore Rigoutsos,et al.  An algorithm for point clustering and grid generation , 1991, IEEE Trans. Syst. Man Cybern..

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

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

[5]  Jill P. Mesirov,et al.  Parallel approaches to short range molecular dynamics simulations , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[6]  C. R. Anderson A method of local corrections for computing the velocity field due to a distribution of vortex blobs , 1986 .

[7]  Ken Kennedy,et al.  Value-Based Distributions in Fortran D: A Preliminary Report , 1993 .

[8]  Scott B. Baden,et al.  Dynamic Partitioning of Non-Uniform Structured Workloads with Spacefilling Curves , 1996, IEEE Trans. Parallel Distributed Syst..

[9]  W. C. Athas,et al.  Cantor: an actor programming system for scientific computing , 1988, OOPSLA/ECOOP '88.

[10]  Andrew A. Chien,et al.  Concurrent Aggregates: Supporting Modularity in Massively Parallel Programs , 1993 .

[11]  Dennis Gannon,et al.  High Performance Fortran interface to the parallel C++ , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

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

[13]  Jerry Bernholc,et al.  Structural transitions in metal clusters , 1991 .

[14]  Laxmikant V. Kalé,et al.  Chare Kernel - a Runtime Support System for Parallel Computations , 1991, J. Parallel Distributed Comput..

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

[16]  Marsha J. Berger,et al.  Structured Adaptive Mesh Refinement on the Connection Machine , 1993, PPSC.

[17]  Robert S. Schreiber,et al.  Hpf-2 scope of activities and motivating applications , 1994 .

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

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

[20]  David J. Edelsohn,et al.  HIERARCHICAL TREE-STRUCTURES AS ADAPTIVE MESHES , 1993 .

[21]  A. Daghi,et al.  A Communication Facility for Distributed Object-Oriented Applications , 1992, C++ Conference.

[22]  Z. Khachaturian,et al.  Future Research Directions , 1997, International Psychogeriatrics.

[23]  Joel H. Saltz,et al.  Parallelization of Irregularly Coupled Regular Meshes , 1992 .

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

[25]  Cherri M. Pancake,et al.  Do parallel languages respond to the needs of scientific programmers? , 1990, Computer.

[26]  Joel H. Saltz,et al.  An Integrated Runtime and Compile-Time Approach for Parallelizing Structured and Block Structured Applications , 1995, IEEE Trans. Parallel Distributed Syst..

[27]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[28]  Scott B. Baden,et al.  Portable Parallel Programming of Numerical Problems under the LPAR System , 1995, J. Parallel Distributed Comput..

[29]  Marsha Berger,et al.  Three-Dimensional Adaptive Mesh Refinement for Hyperbolic Conservation Laws , 1994, SIAM J. Sci. Comput..

[30]  Anoop Gupta,et al.  A parallel adaptive fast multipole method , 1993, Supercomputing '93. Proceedings.

[31]  Ken C. Budge,et al.  High-Performance Scientific Computing Using C++ , 1992, C++ Conference.

[32]  Charles J. Turner,et al.  Adaptive data parallel methods for ecosystem monitoring , 1994, Proceedings of Supercomputing '94.

[33]  Barbara M. Chapman,et al.  Extending HPF for Advanced Data-Parallel Applications , 1994, IEEE Parallel & Distributed Technology: Systems & Applications.

[34]  Brian W. Kernighan,et al.  The C Programming Language, Second Edition , 1988 .

[35]  James R. Larus,et al.  Application-specific protocols for user-level shared memory , 1994, Proceedings of Supercomputing '94.

[36]  K. Mani Chandy,et al.  Fortran M: A Language for Modular Parallel Programming , 1995, J. Parallel Distributed Comput..

[37]  Laxmikant V. Kalé,et al.  CHARM++: a portable concurrent object oriented system based on C++ , 1993, OOPSLA '93.

[38]  P. Woodward,et al.  The Piecewise Parabolic Method (PPM) for Gas Dynamical Simulations , 1984 .

[39]  Reinhard von Hanxleden,et al.  Parallelization Strategies for a Molecular Dynamics Program , 1992 .

[40]  S. McCormick,et al.  A multilevel variational method for Au= Bu on composite Grids , 1989 .

[41]  Patricia Florissi,et al.  On remote procedure call , 1992, CASCON.

[42]  Henry M. Levy,et al.  Distributed shared memory with versioned objects , 1992, OOPSLA.

[43]  Ian Foster,et al.  A compilation system that integrates High Performance Fortran and Fortran M , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[44]  I. Foster,et al.  Integrating task and data parallelism , 1993, Supercomputing '93.

[45]  W. Hart Adaptive global optimization with local search , 1994 .

[46]  Lawrence Snyder,et al.  Type architectures, shared memory, and the corollary of modest potential , 1986 .

[47]  Jaswinder Pal Singh,et al.  Hierarchical n-body methods and their implications for multiprocessors , 1993 .

[48]  F. A. Seiler,et al.  Numerical Recipes in C: The Art of Scientific Computing , 1989 .

[49]  Scott B. Baden,et al.  The Parallelization of an Adaptive Multigrid Eigenvalue Solver with LPARX , 1995, PPSC.

[50]  Geoffrey C. Fox,et al.  Fortran 90D/HPF compiler for distributed memory MIMD computers: design, implementation, and performance results , 1993, Supercomputing '93.

[51]  Piet Hut,et al.  A hierarchical O(N log N) force-calculation algorithm , 1986, Nature.

[52]  米沢 明憲 ABCL : an object-oriented concurrent system , 1990 .

[53]  Lawrence Snyder,et al.  A Portable Parallel N-Body Solver , 1995, PPSC.

[54]  Anoop Gupta,et al.  The Stanford FLASH multiprocessor , 1994, ISCA '94.

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

[56]  Ramesh Subramonian,et al.  LogP: towards a realistic model of parallel computation , 1993, PPOPP '93.

[57]  CORPORATE Parallel Compiler Runtime Consortium Common runtime support for high-performance parallel languages , 1993, Supercomputing '93.

[58]  Leslie Greengard,et al.  A fast algorithm for particle simulations , 1987 .

[59]  Phillip Colella,et al.  A fast vortex method in three dimensions , 1991 .

[60]  Christopher R. Anderson,et al.  An Implementation of the Fast Multipole Method without Multipoles , 1992, SIAM J. Sci. Comput..

[61]  Joel H. Saltz,et al.  Support for distributed dynamic data structures in C , 1995 .

[62]  María Cecilia Rivara,et al.  Design and data structure of fully adaptive, multigrid, finite-element software , 1984, ACM Trans. Math. Softw..

[63]  Robert E. Minnear,et al.  Integrating the Sun Microsystems XDR/RPC Protocols into the C++ Stream Model , 1992, C++ Conference.

[64]  D. Brandt,et al.  Multi-level adaptive solutions to boundary-value problems math comptr , 1977 .

[65]  Joel H. Saltz,et al.  Parallelizing Molecular Dynamics Programs for Distributed Memory Machines: An Application of the Cha , 1994 .

[66]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[67]  William F. Mitchell Refinement Tree Based Partitioning for Adaptive Grids , 1995, PPSC.

[68]  D. Quinlan,et al.  Run-time recognition of task parallelism within the P++ parallel array class library , 1993, Proceedings of Scalable Parallel Libraries Conference.

[69]  R W Hockney,et al.  Computer Simulation Using Particles , 1966 .

[70]  V. Karamcheti,et al.  Concert-efficient runtime support for concurrent object-oriented programming languages on stock hardware , 1993, Supercomputing '93.

[71]  S. McCormick,et al.  Multigrid Methods for Nearly Singular Linear Equations and Eigenvalue Problems , 1997 .

[72]  Cho,et al.  Wavelets in electronic structure calculations. , 1993, Physical review letters.

[73]  G ValiantLeslie A bridging model for parallel computation , 1990 .

[74]  Linda Stals Adaptive multigrid in parallel , 1995, Proceedings 1st International Conference on Algorithms and Architectures for Parallel Processing.

[75]  Scott B. Baden,et al.  Scalable Parallel Numerical Methods and Software Tools for Material Design , 1994, PPSC.

[76]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[77]  V. Vatsa,et al.  An Integrated Runtime and Compile-time Approach for Parallelizing Structured and Block Structured Applications , 1995 .

[78]  Dennis Gannon,et al.  Sage++: An Object-Oriented Toolkit and Class Library for Building Fortran and C++ Restructuring Tool , 1994 .

[79]  Ken Kennedy,et al.  COMPILER ANALYSIS FOR IRREGULAR PROBLEMS IN FORTRAN , .

[80]  R. Lathe Phd by thesis , 1988, Nature.

[81]  William Gropp,et al.  Scalable, extensible, and portable numerical libraries , 1993, Proceedings of Scalable Parallel Libraries Conference.

[82]  White,et al.  Finite-element method for electronic structure. , 1989, Physical review. B, Condensed matter.

[83]  D. R. Bates,et al.  Wave functions of the hydrogen molecular ion , 1953, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.

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

[85]  Brodbeck,et al.  Instability dynamics of fracture: A computer simulation investigation. , 1994, Physical review letters.

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

[87]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[88]  John L. Hennessy,et al.  Finding and Exploiting Parallelism in an Ocean Simulation Program: Experience, Results, and Implications , 1992, J. Parallel Distributed Comput..

[89]  Ann S. Almgren,et al.  A fast adaptive vortex method using local corrections , 1991 .

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

[91]  Masaru Tsukada,et al.  Real Space Approach to Electronic-Structure Calculations , 1994 .

[92]  Katherine Yelick,et al.  Multipol: A Distributed Data Structure Library , 1995 .

[93]  Guy E. Blelloch,et al.  Implementation of a portable nested data-parallel language , 1993, PPOPP '93.

[94]  Michael S. Warren,et al.  A parallel hashed oct-tree N-body algorithm , 1993, Supercomputing '93. Proceedings.

[95]  James R. Larus C**: A Large-Grain, Object-Oriented, Data-Parallel Programming Language , 1992, LCPC.

[96]  J. Larus,et al.  Eecient Support for Irregular Applications on Distributed-memory Machines , 1995 .

[97]  Jeffrey S. Chase,et al.  The Amber system: parallel programming on a network of multiprocessors , 1989, SOSP '89.

[98]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[99]  J. Browne,et al.  An Infrastructure for Parallel Adaptive Mesh � Re nement Techniques , 1995 .

[100]  Physical Review , 1965, Nature.

[101]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[102]  Scott B. Baden,et al.  Lattice parallelism: a parallel programming model for manipulating non-uniform structured scientific data structures , 1993, SIGP.

[103]  Scott B. Baden,et al.  Performance Analysis of Parallel Strategies for Localized N-Body Solvers , 1995, PPSC.

[104]  Joel H. Saltz,et al.  Parallelizing Molecular Dynamics Codes using the Parti Software Primitives , 1993, PPSC.

[105]  A.L. Ananda,et al.  ASTRA-an asynchronous remote procedure call facility , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[106]  David C. Cann,et al.  A Report on the Sisal Language Project , 1990, J. Parallel Distributed Comput..

[107]  Henri E. Bal,et al.  Distributed Programming with Shared Data , 1991, Comput. Lang..

[108]  Philip A. Hughes,et al.  Simulations of Relativistic Extragalactic Jets , 1994 .

[109]  L. R. Scott,et al.  Parallelizing molecular dynamics using spatial decomposition , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[110]  John Zahorjan,et al.  Adhara: runtime support for dynamic space-based applications on distributed memory MIMD multiprocessors , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[111]  Scott B. Baden,et al.  Run-time Data Distribution for Block-Structured Applications on Distributed Memory Computers , 1995, PPSC.

[112]  Cherri M. Pancake,et al.  What users need in parallel tool support: survey results and analysis , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[113]  Hanan Samet,et al.  The Design and Analysis of Spatial Data Structures , 1989 .

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

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

[116]  Michael J. Flynn,et al.  Some Computer Organizations and Their Effectiveness , 1972, IEEE Transactions on Computers.

[117]  Curtis R. Cook,et al.  Are expectations for parallelism too high? a survey of potential parallel users , 1994, Proceedings of Supercomputing '94.

[118]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[119]  Dennis Gannon,et al.  Distributed pC++ Basic Ideas for an Object Parallel Language , 1993, Sci. Program..

[120]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[121]  James R. Larus,et al.  The Wisconsin Wind Tunnel: virtual prototyping of parallel computers , 1993, SIGMETRICS '93.

[122]  David Levine,et al.  Computational Electromagnetics and Parallel Dense Matrix Computations , 1995, PPSC.

[123]  Scott B. Baden,et al.  A Comparison of Load Balancing Strategies for Particle Methods Running on MIMD Multiprocessors , 1991, PPSC.