A System for Building Scalable Parallel Applications

One of the major problems with programming scalable multicomputer systems is defining appropriate abstractions for the programmer. In order to allow applications to scale their resource consumption according to run-time conditions, we propose a view of a scalable system which treats memory as a collection of programmer-defined and -extensible data structures. These structures may be transparently distributed across the nodes of the system while still presenting a single-entity abstraction to the programmer. The implementation of such structures, as a kernel for a programming environment, are presented, along with examples of their use.

[1]  Justin O. Graver,et al.  Multilisp: a Language for Concurrent Symbolic Computation Acm Transactions on Programming Languages and Systems , 1989 .

[2]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[3]  Graham D. Parrington,et al.  Management of concurrency in a reliable object-oriented computing system , 1988 .

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

[5]  Colin Atkinson,et al.  Object-oriented reuse concurrency and distribution , 1991 .

[6]  Edward Fredkin,et al.  Trie memory , 1960, Commun. ACM.

[7]  Andy J. Wellings,et al.  Wisdom: A distributed operating system for transputers , 1990, Comput. Syst. Sci. Eng..

[8]  Ronald Fagin,et al.  Extendible hashing—a fast access method for dynamic files , 1979, ACM Trans. Database Syst..

[9]  Andy J. Wellings,et al.  The Design of an Operating System for a Scalable Parallel Computing Engine , 2022 .

[10]  K. A Murray,et al.  Issues in the design and implementation of a distributed operating system for a network of transputers , 1988 .

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

[12]  Kai Li,et al.  Shared virtual memory on loosely coupled multiprocessors , 1986 .

[13]  Per-Åke Larson,et al.  Dynamic hashing , 1978, BIT.

[14]  Andy J. Wellings,et al.  File system caching in large point-to-point networks , 1992, Softw. Eng. J..

[15]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[16]  Andrew A. Chien,et al.  Concurrent aggregates (CA) , 1990, PPOPP '90.

[17]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

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

[19]  Witold Litwin,et al.  Virtual Hashing: A Dynamically Changing Hashing , 1978, VLDB.

[20]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

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

[22]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[23]  Kevin Murray Wisdom : the foundation of a scalable parallel operating system , 1990 .