Orca: a language for parallel programming of distributed systems
Authors:
- H.E. BalHBH.E. Bal
- M.F. KaashoekMKM.F. Kaashoek
- A.S. TanenbaumATA.S. Tanenbaum
- 1 March 1992
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 18 (3) , 190-205
Abstract
Orca is a language for implementing parallel applications on loosely coupled distributed systems. Unlike most languages for distributed programming, it allows processes on different machines to share data. Such data are encapsulated in data-objects, which are instances of user-defined abstract data types. The implementation of Orca takes care of the physical distribution of objects among the local memories of the processors. In particular, an implementation may replicate and/or migrate objects in order to decrease access times to objects and increase parallelism. This paper gives a detailed description of the Orca language design and motivates the design choices. 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. The paper discusses three example parallel applications in Orca, one of which is described in detail. It also describes one of the existing implementations, which is based on reliable broadcasting. Performance measurements of this system are given for three parallel applications. The measurements show that significant speedups can be obtained for all three applications. Finally, the paper compares Orca with several related languages and systems. © 1992 IEEKeywords
This publication has 26 references indexed in Scilit:
- Group communication in the Amoeba distributed operating system1991
- Munin: distributed shared memory based on type-specific memory coherence1990
- The Amber system: parallel programming on a network of multiprocessors1989
- An efficient reliable broadcast protocolACM SIGOPS Operating Systems Review, 1989
- Distributed programming in ArgusCommunications of the ACM, 1988
- Fine-grained mobility in the Emerald systemACM Transactions on Computer Systems, 1988
- Architectural support for multilanguage parallel programming on heterogeneous systemsACM SIGARCH Computer Architecture News, 1987
- Linda and FriendsComputer, 1986
- Preliminary thoughts on problem-oriented shared memoryACM SIGOPS Operating Systems Review, 1985
- EthernetCommunications of the ACM, 1976