M-Tree: A Parallel Abstract Data Type for Block-Irregular Adaptive Applictions

This paper describes an abstract data type called M-Tree — a generalization of a quadtree which captures both the data structure and computational structure common to many adaptive problems in science and engineering. It is equipped with a rich set of access functions including higher-order operators describing commonly used computational patterns in parallel adaptive computations. This provides a uniform high level abstraction of a wide range of applications including adaptive mesh refinement and adaptive particle simulation and thus enables such applications to be constructed systematically and efficiently. We present examples in which an M-tree is used to solve both an adaptive heat-flow problem and N-body particle simulation. The structured abstraction of commonly-occurring computation patterns in the application provides us with the opportunity to investigate various approaches to load balancing and communication minimization using caching and other techniques. These optimizations are applicable to other problems with a similar structure.

[1]  M. S. Warren,et al.  A parallel hashed Oct-Tree N-body algorithm , 1993, Supercomputing '93.

[2]  Peter G. Harrison,et al.  Parallel Programming Using Skeleton Functions , 1993, PARLE.

[3]  K. Mani Chandy,et al.  Compositional C++: Compositional Parallel Programming , 1992, LCPC.

[4]  K. M. Chandy,et al.  Integrating Task and Data Parallelism with the Collective Communication Archetype , 1994 .

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

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

[7]  Paul H. J. Kelly,et al.  Efficient shared-memory support for parallel graph reduction , 1997, Future Gener. Comput. Syst..

[8]  Paul H. J. Kelly Functional programming for loosely-coupled multiprocessors , 1989, Research monographs in parallel and distributed computing.

[9]  Scott B. Baden,et al.  A parallel software infrastructure for dynamic block-irregular scientific calculations , 1995 .

[10]  Hanan Samet,et al.  Hierarchical Spatial Data Structures , 1989, SSD.

[11]  Mario Südholt,et al.  Data Distribution Algebras - A Formal Basis for Programming Using Skeletons , 1994, PROCOMET.

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

[13]  Graham F. Carey,et al.  A class of data structures for 2‐D and 3‐D adaptive mesh refinement , 1988 .

[14]  George Horatiu Botorog,et al.  Algorithmic Skeletons for Adaptive Multigrid Methods , 1995, IRREGULAR.

[15]  Ian T. Foster,et al.  Productive Parallel Programming: The PCN Approach , 1995, Sci. Program..

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