Parallel Programming Using Shared Objects and Broadcasting

The two major design approaches taken to build distributed and parallel computer systems, multiprocessing and multicomputing, are discussed. A model that combines the best properties of both multiprocessor and multicomputer systems, easy-to-build hardware, and a conceptually simple programming model...

Full description

Bibliographic Details
Published in:Computer
Main Authors: Tanenbaum, A.S., Kaashoek, M.F., Bal, H.E.
Format: Article in Journal/Newspaper
Language:English
Published: 1992
Subjects:
Online Access:https://research.vu.nl/en/publications/28b74263-3c40-447a-bace-959aa2b57be8
https://doi.org/10.1109/2.153276
http://hdl.handle.net/1871.1/28b74263-3c40-447a-bace-959aa2b57be8
Description
Summary:The two major design approaches taken to build distributed and parallel computer systems, multiprocessing and multicomputing, are discussed. A model that combines the best properties of both multiprocessor and multicomputer systems, easy-to-build hardware, and a conceptually simple programming model is presented. Using this model, a programmer defines and invokes operations on shared objects, the runtime system handles reads and writes on these objects, and the reliable broadcast layer implements indivisible updates to objects using the sequencing protocol. The resulting system is easy to program, easy to build, and has acceptable performance on problems with a moderate grain size in which reads are much more common than writes. Orca, a procedural language whose sequential constructs are roughly similar to languages like C or Modula 2 but which also supports parallel processes and shared objects and has been used to develop applications for the prototype system, is described.