Results 1 - 10
of
43
Refining Multiset Transformers
- Communications of the ACM
"... Gamma is a minimal language based on local multiset rewriting with an elegant chemical reaction metaphor. The virtues of this paradigm in terms of systematic program construction and design of parallel programs have been argued in previous papers. Gamma can also be seen as a notation for coordinatin ..."
Abstract
-
Cited by 155 (22 self)
- Add to MetaCart
Gamma is a minimal language based on local multiset rewriting with an elegant chemical reaction metaphor. The virtues of this paradigm in terms of systematic program construction and design of parallel programs have been argued in previous papers. Gamma can also be seen as a notation for coordinating independent programs in a larger application. In this paper, we study a notion of refinement for programs involving parallel and sequential composition operators, and derive a number of programming laws. The calculus thus obtained is applied in the development of a generic "pipelining" transformation, which enables certain sequential compositions to be refined into parallel compositions. Keywords: Gamma, Multiset Rewriting, Program Transformation. 1 Introduction We first describe the general motivation of the work presented here before summarising the main results developed in the body of the paper. 1.1 Motivation The notion of sequential computation has played a central role in the des...
Fortran M: A Language for Modular Parallel Programming
- Journal of Parallel and Distributed Computing
, 1992
"... Fortran M is a small set of extensions to Fortran 77 that supports a modular approach to the design of message-passing programs. It has the following features. (1) Modularity. Programs are constructed by using explicitly-declared communication channels to plug together program modules called process ..."
Abstract
-
Cited by 131 (24 self)
- Add to MetaCart
Fortran M is a small set of extensions to Fortran 77 that supports a modular approach to the design of message-passing programs. It has the following features. (1) Modularity. Programs are constructed by using explicitly-declared communication channels to plug together program modules called processes. A process can encapsulate common data, subprocesses, and internal communication. (2) Safety. Operations on channels are restricted so as to guarantee deterministic execution, even in dynamic computations that create and delete processes and channels. Channels are typed, so a compiler can check for correct usage. (3) Architecture Independence. The mapping of processes to processors can be specified with respect to a virtual computer with size and shape different from that of the target computer. Mapping is specified by annotations that influence performance but not correctness. (4) Efficiency. Fortran M can be compiled efficiently for uniprocessors, sharedmemory computers, distributed-m...
Models of Machines and Computation for Mapping in Multicomputers
, 1993
"... It is now more than a quarter of a century since researchers started publishing papers on mapping strategies for distributing computation across the computation resource of multiprocessor systems. There exists a large body of literature on the subject, but there is no commonly-accepted framework ..."
Abstract
-
Cited by 76 (1 self)
- Add to MetaCart
It is now more than a quarter of a century since researchers started publishing papers on mapping strategies for distributing computation across the computation resource of multiprocessor systems. There exists a large body of literature on the subject, but there is no commonly-accepted framework whereby results in the field can be compared. Nor is it always easy to assess the relevance of a new result to a particular problem. Furthermore, changes in parallel computing technology have made some of the earlier work of less relevance to current multiprocessor systems. Versions of the mapping problem are classified, and research in the field is considered in terms of its relevance to the problem of programming currently available hardware in the form of a distributed memory multiple instruction stream multiple data stream computer: a multicomputer.
A Software Architecture for Multidisciplinary Applications: Integrating Task and Data Parallelism
, 1994
"... Data parallel languages such as Vienna Fortran and HPF can be successfully applied to a wide range of numerical applications. However, many advanced scientific and engineering applications are of a multidisciplinary and heterogeneous nature and thus do not fit well into the data parallel paradigm. ..."
Abstract
-
Cited by 52 (8 self)
- Add to MetaCart
Data parallel languages such as Vienna Fortran and HPF can be successfully applied to a wide range of numerical applications. However, many advanced scientific and engineering applications are of a multidisciplinary and heterogeneous nature and thus do not fit well into the data parallel paradigm. In this paper we present new Fortran 90 language extensions to fill this gap. Tasks can be spawned as asynchronous activities in a homogeneous or heterogeneous computing environment; they interact by sharing access to Shared Data Abstractions (SDAs). SDAs are an extension of Fortran 90 modules, representing a pool of common data, together with a set of methods for controlled access to these data and a mechanism for providing persistent storage. Our language supports the integration of data and task parallelism as well as nested task parallelism and thus can be used to express multidisciplinary applications in a natural and efficient way.
Rule-based Object Coordination
- Object-Based Models and Languages for Concurrent Systems, Lecture Notes in Computer Science
, 1995
"... . We discuss a framework in which the traditional features of objects (encapsulation, communication, etc.) are enhanced with synchronization and coordination facilities, using the declarative power of rules. We propose two interpretations of rules, one re-active and the other proactive, correspondin ..."
Abstract
-
Cited by 16 (2 self)
- Add to MetaCart
. We discuss a framework in which the traditional features of objects (encapsulation, communication, etc.) are enhanced with synchronization and coordination facilities, using the declarative power of rules. We propose two interpretations of rules, one re-active and the other proactive, corresponding to different kinds of interactions between the rules and the objects. Finally, we consider the problem of capturing domain specific knowledge within a general coordination framework, for which constraints offer a promising direction of research. keywords: objects, rules, coordination, constraints. 1 Introduction Object-oriented Programming (OOP) is meant to provide an integrated framework for a technology of software components [20]. In OOP languages (such as Smalltalk and C++), objects have an interface that specifies applicable operations, and have a local state shared by the objects' operations. Variables representing the internal state of the object are called instance variables and ...
Performance Models for the Processor Farm Paradigm
- IEEE Transactions on Parallel and Distributed Systems
, 1997
"... In this paper, we describe the design, implementation, and modeling of a runtime kernel to support the processor farm paradigm on multicomputers. We present a general topology-independent framework for obtaining performance models to predict the performance of the start-up, steady-state, and wind- ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
In this paper, we describe the design, implementation, and modeling of a runtime kernel to support the processor farm paradigm on multicomputers. We present a general topology-independent framework for obtaining performance models to predict the performance of the start-up, steady-state, and wind-down phases of a processor farm. An algorithm is described, which for any interconnection network determines a tree-structured subnetwork that optimizes farm performance. The analysis technique is applied to the important case of k-ary tree topologies. The models are compared with the measured performance on a variety of topologies using both constant and varied task sizes. Index Terms---Parallel programming paradigms, performance evaluation, processor farm, tree networks, message passing architecture, network flow, master-slave. ------------------------------ F ------------------------------ 1I NTRODUCTION HE major problems in parallel computation revolve around questions of ease of...
The Power of Abstraction, Reuse and Simplicity: An Object-Oriented Library For . . .
, 2002
"... A new library for event-driven design, defining a general and extendible scheme yet easy to learn and use on both the publisher and subscriber sides, provides an opportunity to analyze such other approaches as the "Observer Pattern", the event-delegate mechanism of .NET and its "Web Forms", then ..."
Abstract
-
Cited by 15 (5 self)
- Add to MetaCart
A new library for event-driven design, defining a general and extendible scheme yet easy to learn and use on both the publisher and subscriber sides, provides an opportunity to analyze such other approaches as the "Observer Pattern", the event-delegate mechanism of .NET and its "Web Forms", then to draw some general software engineering lessons.
A Hierarchical Model for Coordination of Concurrent Activities
- Third International Conference on Coordination Languages and Models (COORDINATION ’99), LNCS 1594
, 1999
"... We describe a hierarchical model for coordination of concurrent activities based on grouping actors into casts and coordinating casts by actors that are designated directors. The hierarchical model provides a simple, intuitive basis for actor communication and coordination. Casts serve as abstractio ..."
Abstract
-
Cited by 13 (7 self)
- Add to MetaCart
We describe a hierarchical model for coordination of concurrent activities based on grouping actors into casts and coordinating casts by actors that are designated directors. The hierarchical model provides a simple, intuitive basis for actor communication and coordination. Casts serve as abstraction units for naming, migration, synchronization and load balancing. Messengers are actors used to send messages with special behaviour across casts. Moreover, an implementation of the hierarchical model does not require a reective run-time architecture. We present the operational semantics for our model and illustrate the model by two sample applications: an atomic multicast protocol and a messenger carrying remote exception-handling code. These applications have been implemented in Java, leveraging the existence of cross-platform, safe virtual machine implementations.
JOpera: a Toolkit for Efficient Visual Composition of Web Services
- International Journal of Electronic Commerce (IJEC
, 2003
"... Web services are increasingly attracting attention for their ability to pro-vide standard interfaces to heterogeneous distributed services. Through these standard interfaces, it is possible to compose more complex services out of basic ones. In this paper, we tackle the problem of visual service com ..."
Abstract
-
Cited by 13 (6 self)
- Add to MetaCart
Web services are increasingly attracting attention for their ability to pro-vide standard interfaces to heterogeneous distributed services. Through these standard interfaces, it is possible to compose more complex services out of basic ones. In this paper, we tackle the problem of visual service compo-sition and the efficient and scalable execution of the resulting composite services. Our efforts revolve around the JOpera system, which combines a visual programming environment for Web services with a flexible execution engine capable of interacting with Web services through the SOAP protocol, described with WSDL, and registered with an UDDI registry. In the paper we describe the syntax of the JOpera Visual Composition Language (JVCL), its implementation, and how to provide different QoS levels in the execution of composite services.
A Compiler Approach to Scalable Concurrent Program Design
- ACM TOPLAS
, 1992
"... The programmer's most powerful tool for controlling complexity in program design is abstraction. We seek to use abstraction in the design of concurrent programs, so as to separate design decisions concerned with decomposition, communication, synchronization, mapping, granularity, and load balancing. ..."
Abstract
-
Cited by 11 (7 self)
- Add to MetaCart
The programmer's most powerful tool for controlling complexity in program design is abstraction. We seek to use abstraction in the design of concurrent programs, so as to separate design decisions concerned with decomposition, communication, synchronization, mapping, granularity, and load balancing. This paper describes programming and compiler techniques intended to facilitate this design strategy. The programming techniques are based on a core programming notation with two important properties: the ability to separate concurrent programming concerns, and extensibility with reusable programmerdefined abstractions. The compiler techniques are based on a simple transformation system together with a set of compilation transformations and portable run-time support. The transformation system allows programmer-defined abstractions to be defined as source- to-source transformations that convert abstractions into the core notation. The same transformation system is used to apply compilation transformations that incrementally transform the core notation toward an abstract concurrent machine. This machine can be implemented on a variety of concurrent architectures using simple run-time support.

