Programming distributed memory architectures using Kali

Abstract : Programming nonshared memory systems is more difficult than programming shared memory systems, in part because of the relatively low level of current programming environments for such machines. The paper presents a new programming environment, Kali, which provides a global name space and allows direct access to remote data values. In order to retain efficiency, Kali provides a system of annotations, allowing the user to control those aspects of the program critical to performance, such as data distribution and load balancing. This paper describes the primitives and constructs provided by our language, and also discusses some of the issues raised in translating a Kali program for execution on distributed memory systems. (KR)

[1]  Guy L. Steele,et al.  Data Optimization: Allocation of Arrays to Reduce Communication on SIMD Machines , 1990, J. Parallel Distributed Comput..

[2]  David Socha,et al.  An Approach to Compiling Single-point Iterative Programs for Distributed Memory Computers , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[3]  G. C. Fox,et al.  Solving Problems on Concurrent Processors , 1988 .

[4]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[5]  Harry Berryman,et al.  Run-Time Scheduling and Execution of Loops on Message Passing Machines , 1990, J. Parallel Distributed Comput..

[6]  William G. Griswold,et al.  Scalable Abstractions for Parallel Programming , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[7]  Nicholas Carriero,et al.  Linda and Friends , 1986, Computer.

[8]  Anne Rogers,et al.  Process decomposition through locality of reference , 1989, PLDI '89.

[9]  Piyush Mehrotra,et al.  The BLAZE language: A parallel language for scientific programming , 1987, Parallel Comput..

[10]  R. J. Littlefield Efficient iteration in data-parallel programs with irregular and dynamically distributed data structures , 1990 .

[11]  Joel H. Saltz,et al.  Principles of runtime support for parallel processors , 1988, ICS '88.

[12]  Harry Berryman,et al.  Parallel Loops on Distributed Machines , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[13]  Bobby Schnabel,et al.  An Overview of Dino - A New Language for Numerical Computation on Distributed Memory Multiprocessors , 1987, PPSC.

[14]  Piyush Mehrotra,et al.  Parallel language constructs for tensor product computations on loosely coupled architectures , 1989, Proceedings of the 1989 ACM/IEEE Conference on Supercomputing (Supercomputing '89).

[15]  Charles Koelbel,et al.  Supporting shared data structures on distributed memory architectures , 1990, PPOPP '90.