Orca: A Language For Parallel Programming of Distributed Systems

A detailed description is given of the Orca language design and the design choices are discussed. Orca is intended for applications programmers rather than systems programmers. This is reflected in its design goals to provide a simple, easy-to-use language that is type-secure and provides clean semantics. Three example parallel applications in Orca, one of which is described in detail, are discussed. One of the existing implementations, which is based on reliable broadcasting, is described. Performance measurements of this system are given for three parallel applications. The measurements show that significant speedups can be obtained for all three applications. The authors compare Orca with several related languages and systems. >

[1]  Ronald Minnich,et al.  Reducing host load, network load, and latency in a distributed shared memory , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[2]  Prasad Vishnubhotla,et al.  Synchronization and scheduling in ALPS objects , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[3]  Mustaque Ahamad,et al.  Slow memory: weakening consistency to enhance concurrency in distributed shared memories , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[4]  R. C. B. Cooper,et al.  Preserving Abstraction in Concurrent Programming , 1988, IEEE Trans. Software Eng..

[5]  Andrew Birrell,et al.  Implementing Remote procedure calls , 1983, SOSP '83.

[6]  P BirmanKenneth,et al.  Low cost management of replicated data in fault-tolerant distributed systems , 1986 .

[7]  Henri E. Bal,et al.  Experience with distributed programming in Orca , 1990, Proceedings. 1990 International Conference on Computer Languages.

[8]  Alessandro Forin,et al.  Architectural support for multilanguage parallel programming on heterogeneous systems , 1987, ASPLOS 1987.

[9]  Jo-Mei Chang,et al.  Reliable broadcast protocols , 1984, TOCS.

[10]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[11]  Hector Garcia-Molina,et al.  Message ordering in a multicast environment , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[12]  Carlo Ghezzi,et al.  Programming language concepts (2nd ed.) , 1986 .

[13]  Willy Zwaenepoel,et al.  Munin: distributed shared memory based on type-specific memory coherence , 1990, PPOPP '90.

[14]  John F. Wakerly,et al.  The programming language PASCAL , 1979, Microprocessors and microsystems.

[15]  Jeffrey S. Chase,et al.  The Amber system: parallel programming on a network of multiprocessors , 1989, SOSP '89.

[16]  David R. Cheriton,et al.  Preliminary thoughts on problem-oriented shared memory: a decentralized approach to distributed systems , 1985, OPSR.

[17]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[18]  Steven Lucco,et al.  Parallel programming in a virtual object space , 1987, OOPSLA '87.

[19]  Andrew S. Tanenbaum,et al.  Group communication in the Amoeba distributed operating system , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[20]  Henri E. Bal,et al.  An efficient reliable broadcast protocol , 1989, OPSR.

[21]  Henri E. Bal,et al.  A comparison of two paradigms for distributed shared memory , 1992, Softw. Pract. Exp..

[22]  Sartaj Sahni,et al.  All Pairs Shortest Paths on a Hypercube Multiprocessor , 1987, ICPP.

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

[24]  Henri E. Bal Programming distributed systems , 1990 .

[25]  Henri E. Bal,et al.  Replication techniques for speeding up parallel applications on distributed systems , 1992, Concurr. Pract. Exp..

[26]  Kai Li,et al.  IVY: A Shared Virtual Memory System for Parallel Computing , 1988, ICPP.

[27]  Henri E. Bal,et al.  Distributed programming with shared data , 1988, Proceedings. 1988 International Conference on Computer Languages.

[28]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.

[29]  Carlo Ghezzi,et al.  Programming language concepts , 1982 .

[30]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[31]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[32]  Charles Antony Richard Hoare,et al.  An Operating System Structuring Concept , 1974 .

[33]  Henri E. Bal,et al.  Implementing Distributed Algortihms using Remote Procedure Call , 1899 .

[34]  Robert Metcalfe,et al.  Ethernet: distributed packet switching for local computer networks , 1976, CACM.

[35]  Henri E. Bal,et al.  Experience with the Distributed Data Structure Paradigm in Linda , 1989 .

[36]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[37]  Gregory R. Andrews,et al.  An overview of the SR language and implementation , 1988, TOPL.

[38]  Edward W. Felten,et al.  A Highly Parallel Chess Program , 1988, Fifth Generation Computer Systems.

[39]  Kenneth P. Birman,et al.  Low cost management of replicated data in fault-tolerant distributed systems , 1986, TOCS.

[40]  Alessandro Forin,et al.  Architectural support for multilanguage parallel programming on heterogeneous systems , 1987 .

[41]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[42]  R. V. Renesse,et al.  Implementing distributed algorithms using remote procedure calls , 1987 .

[43]  Robbert van Renesse,et al.  Experiences with the Amoeba distributed operating system , 1990, CACM.

[44]  Robert Metcalfe,et al.  Ethernet: distributed packet switching for local computer networks , 1988, CACM.

[45]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.