Experiences Developing a Virtual Shared Memory System Using High-Level Object Paradigms

Shared-memory programming is still a common and popular way of utilizing parallel machines for high-performance computing. Virtual shared memory (VSM) systems promote a gentle migration path allowing the execution of shared-memory programs on distributed-memory machines. Such kind of systems are both complex and extremely sensitive to performance issues. Therefore many VSM systems still handle distribution aspects manually by means of low-level message-passing operations to gain maximum performance. In contrast, in the Peace operating system family almost all distribution aspects have been covered conveniently and yet efficiently by so-called dual objects. In this paper the VSM subsystem, called Vote, of Peace is presented as a case study for complex systems services that claim for high-level but lightweight object models with an efficient implementation.

[1]  K. Mani Chandy,et al.  CC++: A Declarative Concurrent Object Oriented Programming Notation , 1993 .

[2]  Peter Wegner,et al.  Classification in object-oriented systems , 1986, OOPWORK '86.

[3]  Mitsuhisa Sato,et al.  Design and Implementation of Metalevel Architecture in C++ -- MPC++ Approach -- , 1998 .

[4]  Andrew A. Chien,et al.  ICC++—a C++ dialect for high performance parallel computing , 1996, SIAP.

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

[6]  Andrew A. Chien,et al.  ICC++-AC++ Dialect for High Performance Parallel Computing , 1996, ISOTAS.

[7]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[8]  J. Org Nolte Language-level Support for Remote Object Invocations , 1992 .

[9]  Wolfgang Schröder-Preikschat,et al.  Vote for peace: implementation and performance of a parallel operating system , 1997, IEEE Concurrency.

[10]  W. Schroder-Preikschat,et al.  An object-oriented computing surface for distributed memory architectures , 1993, [1993] Proceedings of the Twenty-sixth Hawaii International Conference on System Sciences.

[11]  Wolfgang Schröder-Preikschat The logical design of parallel operating systems , 1994, Prentice Hall series in innovative technology.

[12]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[13]  Brian N. Bershad,et al.  Midway : shared memory parallel programming with entry consistency for distributed memory multiprocessors , 1991 .

[14]  A. Nico Habermann,et al.  Modularization and hierarchy in a family of operating systems , 1976, CACM.

[15]  Gilbert Cabillic,et al.  MYOAN : an implementation of the KOAN shared virtual memory on the Intel paragon , 1994 .

[16]  Anoop Gupta,et al.  The DASH prototype: implementation and performance , 1992, ISCA '92.

[17]  Jj Org Cordsen Basing Virtually Shared Memoryon aFamily of Consistency ModelsJ , 1994 .

[18]  Oscar Nierstrasz,et al.  Active objects in hybrid , 1987, OOPSLA '87.

[19]  John B. Carter,et al.  Efficient distributed shared memory based on multi-protocol release consistency , 1995 .

[20]  Peter Wegner,et al.  Dimensions of object-based language design , 1987, OOPSLA '87.

[21]  Marc Shapiro,et al.  Structure and Encapsulation in Distributed Systems: The Proxy Principle , 1986, ICDCS.

[22]  Henry M. Levy,et al.  Modules, objects and distributed programming: Issues in RPC and remote object invocation , 1990 .

[23]  Andrew S. Grimshaw,et al.  Easy-to-use object-oriented parallel processing with Mentat , 1993, Computer.

[24]  Mesaac Makpangou,et al.  Structuring distributed applications as fragmented objects , 1991 .

[25]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .