Results 1 - 10
of
32
Munin: Distributed Shared Memory Based on Type-Specific Memory Coherence
, 1990
"... We are developing Munin, a system that allows programs written for shared memory multiprocessors to be executed efficiently on distributed memory machines. Munin attempts to overcome the architectural limitations of shared memory machines, while maintaining their advantages in terms of ease of progr ..."
Abstract
-
Cited by 261 (15 self)
- Add to MetaCart
We are developing Munin, a system that allows programs written for shared memory multiprocessors to be executed efficiently on distributed memory machines. Munin attempts to overcome the architectural limitations of shared memory machines, while maintaining their advantages in terms of ease of programming. Our system is unique in its use of loosely coherent memory, based on the partial order specified by a shared memory parallel program, and in its use of type-specific memory coherence. Instead of a single memory coherence mechanism for all shared data objects, Munin employs several different mechanisms, each appropriate for a different class of shared data object. These type-specific mechanisms are part of a runtime system that accepts hints from the user or the compiler to determine the coherence mechanism to be used for each object. This paper focuses on the design and use of Munin's memory coherence mechanisms, and compares our approach to previous work in this area.
Wrappers to the Rescue
- IN PROCEEDINGS ECOOP ’98, VOLUME 1445 OF LNCS
, 1998
"... Wrappers are mechanisms for introducing new behavior that is executed before and/or after, and perhaps even in lieu of, an existing method. This paper examines several ways to implement wrappers in Smalltalk, and compares their performance. Smalltalk programmers often use Smalltalk's lookup failu ..."
Abstract
-
Cited by 81 (2 self)
- Add to MetaCart
Wrappers are mechanisms for introducing new behavior that is executed before and/or after, and perhaps even in lieu of, an existing method. This paper examines several ways to implement wrappers in Smalltalk, and compares their performance. Smalltalk programmers often use Smalltalk's lookup failure mechanism to customize method lookup. Our focus is different. Rather than changing the method lookup process, we modify the method objects that the lookup process returns. We call these objects method wrappers.Wehaveused method wrappers to construct several program analysis tools: a coverage tool, a class collaboration tool, and an interaction diagramming tool. We also show how we used method wrappers to construct several extensions to Smalltalk: synchronized methods, assertions, and multimethods. Wrappers are relatively easy to build in Smalltalk because it was designed with reflective facilities that allow programmers to intervene in the lookup process. Other languages differ in the degree to which they can accommodate change. Our experience testifies to the value, power, and utility of openness.
Object Location Control Using Meta-level Programming
, 1994
"... . In distributed environments, location control of objects among hosts is a crucial concern. This paper proposes a new mechanism of object location control using meta-level programming which provides the following advantages to programmers. First, the description of location control can be separ ..."
Abstract
-
Cited by 39 (2 self)
- Add to MetaCart
. In distributed environments, location control of objects among hosts is a crucial concern. This paper proposes a new mechanism of object location control using meta-level programming which provides the following advantages to programmers. First, the description of location control can be separated from the application program by exploiting the meta-level architecture. This separation makes it easy for programmers to understand application programs and change location control policies. Second, it is possible for programmers to control object location using runtime information provided at the meta-level such as the number of remote messages. This information enables programmers to control object location more flexibly than in traditional distributed languages. The mechanism proposed in this paper has been implemented on an AL-1/D distributed reflective programming system. We show that our mechanism of location control using meta-level programming provides reasonable perfo...
pSather: Layered Extensions to an Object-Oriented Language for Efficient Parallel Computation
, 1993
"... pSather is a parallel extension of the existing object-oriented language Sather. It offers a shared-memory programming model which integrates both control- and dataparallel extensions. This integration increases the flexibility of the language to express different algorithms and data structures, esp ..."
Abstract
-
Cited by 31 (2 self)
- Add to MetaCart
pSather is a parallel extension of the existing object-oriented language Sather. It offers a shared-memory programming model which integrates both control- and dataparallel extensions. This integration increases the flexibility of the language to express different algorithms and data structures, especially on distributed-memory machines (e.g. CM-5). This report describes our design objectives and the programming language pSather in detail. ICSI and Eidgenossische Technische Hochschule (ETH), Zurich, Switzerland. E-mail: murer@icsi.berkeley.edu. y ICSI and Computer Science Division, U.C. Berkeley. E-mail: jfeldman@icsi.berkeley.edu. z ICSI and Computer Science Division, U.C. Berkeley. E-mail: clim@icsi.berkeley.edu. x ICSI E-mail: mseidel@icsi.berkeley.edu. ii Contents 1 Introduction 4 1.1 Roadmap of this Report : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 1.2 Grammar Notation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 2...
Sub-Method Reflection
, 2002
"... Reflection has proved to be a powerful feature to support the design of development environments and to extend languages. However, the granularity of structural reflection stops at the method level. This is a problem since without sub-method reflection developers have to duplicate efforts, for examp ..."
Abstract
-
Cited by 22 (13 self)
- Add to MetaCart
Reflection has proved to be a powerful feature to support the design of development environments and to extend languages. However, the granularity of structural reflection stops at the method level. This is a problem since without sub-method reflection developers have to duplicate efforts, for example to introduce transparently pluggable type-checkers or fine-grained profilers. In this paper we present Persephone, an efficient implementation of a sub-method meta-object protocol (MOP) based on AST annotations and dual methods (a compiled method and its meta-object) that reconcile AST expressiveness with bytecode execution. We validate the MOP by presenting TreeNurse, a method instrumentation framework and TypePlug, an optional, pluggable type system which is based on Persephone.
Implementing Proxy Objects in a Reflective ORB
, 1997
"... In this short paper, we experiment reflective techniques dealing with the implemention of an ORB. We focus on a specific problem - the proxy representation - in order to emphasize the major advantages of the reflection, i.e. flexibility and reusability. More generally, in the context of the distribu ..."
Abstract
-
Cited by 19 (2 self)
- Add to MetaCart
In this short paper, we experiment reflective techniques dealing with the implemention of an ORB. We focus on a specific problem - the proxy representation - in order to emphasize the major advantages of the reflection, i.e. flexibility and reusability. More generally, in the context of the distributed computing, reflective languages provide a dynamic model allowing instrospection and modification of the policies and the mechanisms of distribution. 1 Introduction The aim of this paper is to introduce reflection as a basic technique for developping ORBs, in order to improve reliability and flexibility. We focus on a specific but central problem for ORBs : the proxy representation. In object-oriented distributed architectures like CORBA, the concept of proxy allows to deal with a local representation of a remote object. The main purpose of a proxy object is the remote invocation for calling the real object. Although implementing proxies is closely tied to a programming language, we noti...
Object-Based Concurrent Programming and Distributed Artificial Intelligence
- Distributed Artificial Intelligence: Theory and Praxis
, 1992
"... This paper presents some aspects of our studies of the conceptual and implementation relationships between Object-Based Concurrent Programming (OBCP) and Distributed Artificial Intelligence (DAI). The basic argument of this paper is that to implement DAI systems we should find complementary relation ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
This paper presents some aspects of our studies of the conceptual and implementation relationships between Object-Based Concurrent Programming (OBCP) and Distributed Artificial Intelligence (DAI). The basic argument of this paper is that to implement DAI systems we should find complementary relations between the theory of social organization chosen for DAI problem-solving and the theory of modeling and implementation used for system construction. To clarify the nature of this relationship, we draw on a number of socially-motivated DAI experiments. The underlying social theories used in these experiments were derived from symbolic interactionism, while modeling and implementation theories had roots in OBCP. Starting from these experiments, we continue on to discuss the relevance of OBCP as a basis to construct DAI systems. We then discuss how to enhance OBCP to better provide multilayered OBCP/DAI architectures. While this research is preliminary, we expect it to help clarifying the fou...
A Survey of Multiprocessor Operating System Kernels
, 1993
"... Multiprocessors have been accepted as vehicles for improved computing speeds, cost/performance, and enhanced reliability or availability. However, the added performance requirements of user programs and functional capabilities of parallel hardware introduce new challenges to operating system design ..."
Abstract
-
Cited by 13 (3 self)
- Add to MetaCart
Multiprocessors have been accepted as vehicles for improved computing speeds, cost/performance, and enhanced reliability or availability. However, the added performance requirements of user programs and functional capabilities of parallel hardware introduce new challenges to operating system design and implementation. This paper reviews research and commercial developments in multiprocessor operating system kernels from the late 1970's to the early 1990's. The paper first discusses some common operating system structuring techniques and examines the advantages and disadvantages of using each technique. It then identifies some of the major design goals and key issues in multiprocessor operating systems. Issues and solution approaches are illustrated by review of a variety of research or commercial multiprocessor operating system kernels. College of Computing Georgia Institute of Technology Atlanta, Georgia 30332--0280 Contents 1 Introduction 1 2 Structuring an Operating System 4 2....

