Orca: A Language for Parallel Programming of Distributed Systems

H.E. Bal, M.F. Kaashoek, A.S. Tanenbaum

Research output: Contribution to JournalArticleAcademicpeer-review

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 IEEE
Original languageEnglish
Pages (from-to)190-205
Number of pages16
JournalIEEE Transactions on Software Engineering
Volume18
Issue number3
DOIs
Publication statusPublished - 1992

Fingerprint

Parallel programming
Abstract data types
Broadcasting
Semantics
Data storage equipment

Keywords

  • Amoeba
  • broadcasting distributed systems
  • distributed shared memory
  • Orca
  • parallel programming
  • shared objects

Cite this

@article{0ef89e41282e4d2c85f49a7112dcff1b,
title = "Orca: A Language for Parallel Programming of Distributed Systems",
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. {\circledC} 1992 IEEE",
keywords = "Amoeba, broadcasting distributed systems, distributed shared memory, Orca, parallel programming, shared objects",
author = "H.E. Bal and M.F. Kaashoek and A.S. Tanenbaum",
year = "1992",
doi = "10.1109/32.126768",
language = "English",
volume = "18",
pages = "190--205",
journal = "IEEE Transactions on Software Engineering",
issn = "0098-5589",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
number = "3",

}

Orca: A Language for Parallel Programming of Distributed Systems. / Bal, H.E.; Kaashoek, M.F.; Tanenbaum, A.S.

In: IEEE Transactions on Software Engineering, Vol. 18, No. 3, 1992, p. 190-205.

Research output: Contribution to JournalArticleAcademicpeer-review

TY - JOUR

T1 - Orca: A Language for Parallel Programming of Distributed Systems

AU - Bal, H.E.

AU - Kaashoek, M.F.

AU - Tanenbaum, A.S.

PY - 1992

Y1 - 1992

N2 - 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 IEEE

AB - 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 IEEE

KW - Amoeba

KW - broadcasting distributed systems

KW - distributed shared memory

KW - Orca

KW - parallel programming

KW - shared objects

UR - http://www.scopus.com/inward/record.url?scp=0026825229&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0026825229&partnerID=8YFLogxK

U2 - 10.1109/32.126768

DO - 10.1109/32.126768

M3 - Article

VL - 18

SP - 190

EP - 205

JO - IEEE Transactions on Software Engineering

JF - IEEE Transactions on Software Engineering

SN - 0098-5589

IS - 3

ER -