ON THE DESIGN OF DISTRIBUTED-MEMORY SISAL

Authors
Citation
M. Haines et W. Bohm, ON THE DESIGN OF DISTRIBUTED-MEMORY SISAL, Journal of programming languages, 1(3), 1993, pp. 209-240
Citations number
55
Categorie Soggetti
Computer Sciences","Computer Science Software Graphycs Programming
ISSN journal
09639306
Volume
1
Issue
3
Year of publication
1993
Pages
209 - 240
Database
ISI
SICI code
0963-9306(1993)1:3<209:OTDODS>2.0.ZU;2-L
Abstract
The design of task management and distribution, virtual shared address ing, and multithreading in a distributed memory implementation of the functional programming language Sisal is described. Flat task distribu tion, where independent tasks are distributed to slave processes by a single master process, and multilevel task distribution. Where tasks a re distributed to slave processes in parallel by a number of sub-maste r processes are studied. The trade-offs for these two distribution met hods are measured. A flexible loop distribution scheme that allows loo p distribution to be tied to data distribution is described and the ef fectiveness of this approach is studied. The virtual shared addressing (VISA) system that provides a shared memory abstraction for distribut ed memory machines is described. Several block cyclic data structure a llocation schemes are studied for one-dimensional arrays, and a variet y of distribution functions for two-dimensional arrays and their effec tiveness in reducing remote references are presented. An optimization that eliminates the need for translating VISA addresses that result in local references, and is introduced it is shown that this is extremel y effective in reducing the execution time of programs that exhibit a high degree of locality. Distributing one-dimensional arrays and tying the loop distribution to the data distribution is effective, but mult i-dimensional array distribution currently causes too much message pas sing overhead. Finally, the effectiveness of multithreading in hiding latency is studied. Machine-independent multithreading design is evalu ated and it is shown that, in the presence of very few remote referenc es, multithreading does not improve efficiency. However, in programs w ith an abundance of remote reference multithreading does pay off. The runtime system is currently implemented on the nCUBE/2 multiprocessor, but has been carefully designed to be portable to other distributed m emory architectures.