Data Parallel Iterators for Hierarchical Grid and Tree Algorithms
The data parallel programming language construct of a “foreach” loop is proposed in the context of hierarchically nested arrays and unbalanced k-ary trees used in high performance applications. In order perform an initial evaluation, an implementation of an automatic parallelization system for C++ programs is introduced, which consists of a preprocessor and a matching library for distributed memory, shared memory and mixed model parallelism. For a full compile time dependence analysis and a tight distributed memory parallelization, some additional application knowledge about alignment of arrays or indirect data access can be put into the application’s code data declarations. Results for a multigrid and a fast multipole benchmark code illustrate the concept.
KeywordsShared Memory Message Passing Dependence Analysis Fast Multipole Method Tree Traversal
Unable to display preview. Download preview PDF.
- 4.Ananiev, A.: Algorithm alley: A generic iterator for tree traversal. Dr. Dobb’s J. 25(11), 149–154 (2000)Google Scholar
- 5.Zumbusch, G.: Parallel Multilevel Methods. Adaptive Mesh Refinement and Loadbalancing. Teubner (2003)Google Scholar
- 6.Birken, K.: Semi-automatic parallelisation of dynamic, graph-based applications. In: Proc. Conf. ParCo 1997, pp. 269–276. Elsevier, Amsterdam (1998)Google Scholar