Supporting dynamic data structures on distributed-memory machines
- 1 March 1995
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 17 (2) , 233-263
- https://doi.org/10.1145/201059.201065
Abstract
Compiling for distributed-memory machines has been a very active research area in recent years. Much of this work has concentrated on programs that use arrays as their primary data structures. To date, little work has been done to address the problem of supporting programs that use pointer-based dynamic data structures. The techniques developed for supporting SPMD execution of array-based programs rely on the fact that arrays are statically defined and directly addressable. Recursive data structures do not have these properties, so new techniques must be developed. In this article, we describe an execution model for supporting programs that use pointer-based dynamic data structures. This model uses a simple mechanism for migrating a thread of control based on the layout of heap-allocated data and introduces parallelism using a technique based on futures and lazy task creation. We intend to exploit this execution model using compiler analyses and automatic parallelization techniques. We have implemented a prototype system, which we callOlden, that runs on the Intel iPSC/860 and the Thinking Machines CM-5. We discuss our implementation and report on experiments with five benchmarks.Keywords
This publication has 18 references indexed in Scilit:
- Orca: a language for parallel programming of distributed systemsIEEE Transactions on Software Engineering, 1992
- Lazy task creation: a technique for increasing the granularity of parallel programsIEEE Transactions on Parallel and Distributed Systems, 1991
- Compiling lisp programs for parallel executionHigher-Order and Symbolic Computation, 1991
- Parallelizing programs with recursive data structuresIEEE Transactions on Parallel and Distributed Systems, 1990
- Fine-grained mobility in the Emerald systemACM Transactions on Computer Systems, 1988
- SUPERB: A tool for semi-automatic MIMD/SIMD parallelizationParallel Computing, 1988
- Automatic translation of FORTRAN programs to vector formACM Transactions on Programming Languages and Systems, 1987
- MULTILISP: a language for concurrent symbolic computationACM Transactions on Programming Languages and Systems, 1985
- Two algorithms for constructing a Delaunay triangulationInternational Journal of Parallel Programming, 1980
- A model and stack implementation of multiple environmentsCommunications of the ACM, 1973