The past decade has seen explosive growth in database technology and the amount of data collected. Advances in data collection, use of bar codes in commercial outlets, and the computerization of business transactions have flooded us with lots of data. We have an unprecedented opportunity to analyze
TheaddapSystem on the iPSC/860: Automatic Data Distribution and Parallelization
โ Scribed by Anne Dierstein; Roman Hayer; Thomas Rauber
- Publisher
- Elsevier Science
- Year
- 1996
- Tongue
- English
- Weight
- 313 KB
- Volume
- 32
- Category
- Article
- ISSN
- 0743-7315
No coin nor oath required. For personal study only.
โฆ Synopsis
This paper describes the ADDAP system-a parallelizing compiler for distributed memory MIMD machines that automatically computes a data distribution for the arrays of the source program by a branch-and-bound algorithm and parallelizes the inner loops of the program by inserting the necessary communication statements to access nonlocal array sections. The branchand-bound algorithm incrementally constructs paths in a decision tree where each node on a path corresponds to the distribution of an array of the source program. For each path, a communication analysis tool computes the corresponding communication costs. Based on these costs, the data distribution algorithm tries to find the best data distribution by searching for the cheapest path from a leaf to the root of the decision tree. By rejecting expensive paths as early as possible, the algorithm actually builds only a few paths, corresponding to a small fraction of the decision tree. Therefore, the runtime of the data distribution phase remains quite small also for larger input programs. The structure of the algorithm makes it easy to allow redistributions during program execution. The communication analysis tool computes the communication costs of a data distribution by determining the number and size of the messages that each processor has to receive during program execution. The tool also takes sequentializations into account that are caused by data dependences. A prototype implementation of the system generates code for an Intel iPSC/860. Tests show that the communication costs are determined quite accurately and that the array distributions computed cause only a small communication overhead compared to other data distributions. This results in good speedup values for most of the parallelized programs.
๐ SIMILAR VOLUMES