Results 1 - 10
of
10
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...
A Complexity Calculus for Object-Oriented Programs
- Journal of Object-Oriented Systems
, 1994
"... Modern imperative object-oriented design methods and languages take a rigorous approach to compatibility and reusability mainly from an interface and specification point of view --- if at all. Beside functional specification, however, users select classes from libraries based on performance characte ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
Modern imperative object-oriented design methods and languages take a rigorous approach to compatibility and reusability mainly from an interface and specification point of view --- if at all. Beside functional specification, however, users select classes from libraries based on performance characteristics, too. This article develops an appropriate fundamental approach towards performance estimation, measurement and metering in OO approaches. We use examples written in the Sather language to demonstrate the concepts of so-called OO-machines, which lend themselves to performance metrics, and a calculus for reasoning about performance. A language binding of these concepts is then sketched in the form of cost annotations that allow programmers to file classes in libraries well-documented with cost related specifications. These annotations can optionally be used for instrumenting code that meters cost and checks whether the taken measurements are consistent with the given specification. In...
PROMOTER - An Application-Oriented Programming Model for Massive Parallelism
- Massively Parallel Programming Models, Proc. Int. MPPM Conference
, 1993
"... This article deals with rationale and concepts of a programming model for massive parallelism. We mention the basic properties of massively parallel applications and develop a programming model for data parallelism on distributed-memory computers. Its key features are a suitable combination of homog ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
This article deals with rationale and concepts of a programming model for massive parallelism. We mention the basic properties of massively parallel applications and develop a programming model for data parallelism on distributed-memory computers. Its key features are a suitable combination of homogeneity and heterogeneity aspects, an unified representation of data point configuration and interconnection schemes by explicit virtual data topologies, and various synchronization schemes and nondeterminisms. The outline of the linguistic representation and the abstract executional model are given. Keywords: architecture independence, data parallelism, data topologies, massive parallelism, programming model, SPMD. 1 Introduction A programming model for present and future massively parallel computers is to be developed. Massively parallel computers will certainly need to have distributed memory; in all other respects the programming model is to be architecture independent. Instead of att...
Composites: Trees for Data Parallel Programming
- In Proceedings of the 1994 International Conference on Computer Languages
, 1994
"... Data parallel programming languages offer ease of programming and debugging and scalability of parallel programs to increasing numbers of processors. Unfortunately, the usefulness of these languages for non-scientific programmers and loosely coupled parallel machines is currently limited. In this pa ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
Data parallel programming languages offer ease of programming and debugging and scalability of parallel programs to increasing numbers of processors. Unfortunately, the usefulness of these languages for non-scientific programmers and loosely coupled parallel machines is currently limited. In this paper, we present the composite tree model which seeks to provide greater flexibility via parallel data types, support for more general, hierachical parallelism, parallel control flow, and efficient execution on loosely coupled, coarse grained parallel machines such as workstation networks. The composite tree model is a new model of parallel programming based on merging data parallelism with object oriented programming languages, and can be implemented as a small set of extensions to any pure, static typed, object oriented programming language. 1 Introduction Data parallel programming achieves parallelism through the simultaneous execution of the same operation across a set of data [19]. In a...
Deriving Parallel Numerical Algorithms using Data Distribution Algebras: Wang's Algorithm
, 1996
"... Parallel and distributed programming are much more difficult than the development of sequential algorithms due to data distribution issues and communication requirements. This paper presents a methodology that enables the abstract description of the distribution of data structures by means of overla ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Parallel and distributed programming are much more difficult than the development of sequential algorithms due to data distribution issues and communication requirements. This paper presents a methodology that enables the abstract description of the distribution of data structures by means of overlapping covers that form data distribution algebras. Algorithms are formulated and derived by transformation in a functional environment using skeletons, i.e. higher-order functions with specific parallel implementations. Communication is specified implicitly through the access to overlapping parts of covers. Such specifications enable the derivation of explicit lower-level communication statements. We illustrate the concepts by a complete derivation of Wang's partition algorithm for the solution of tridiagonal systems of linear equations. CONTENTS 2 Contents 1 Introduction 3 1.1 Motivation and Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Notation . . . . . . ....
Reasoning about Complexity of Object-Oriented Programs
, 1994
"... This report develops an appropriate fundamental approach towards performance estimation, measurement and metering in OO approaches. We use examples written in the Sather language to demonstrate the concepts of so-called OO-machines, which lend themselves to performance metrics, and a calculus for re ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
This report develops an appropriate fundamental approach towards performance estimation, measurement and metering in OO approaches. We use examples written in the Sather language to demonstrate the concepts of so-called OO-machines, which lend themselves to performance metrics, and a calculus for reasoning about performance. A language binding of these concepts is then sketched in the form of cost annotations that allow programmers to file classes in libraries well-documented with cost related specifications. These annotations can optionally be used for instrumenting code that meters cost and checks whether the taken measurements are consistent with the given specification. In this way programmers can benefit from cost annotations by means of documentation and rigorous testing without requiring a deep familiarity with the theoretical underpinnings. Keywords: Object-Oriented Languages, Complexity, Amortized Complexity
Solving Large Systems of Differential Equations in Parallel Using Covers and Skeletons
, 1997
"... The design and implementation of parallel algorithms for distributed memory architectures is much harder than the development of sequential algorithms. This is mainly due to the communication and synchronization that is necessary to manage distributed data correctly. This paper applies a methodology ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The design and implementation of parallel algorithms for distributed memory architectures is much harder than the development of sequential algorithms. This is mainly due to the communication and synchronization that is necessary to manage distributed data correctly. This paper applies a methodology for the transformational derivation of parallel programs using data distribution algebras that enable an abstract description of data distribution issues. Algorithms are formulated using skeletons, that is, specialized higher-order functions with particular parallel implementations. The methodology is applied to a the solution of a system of ordinary differential equations where convolutions can be computed using the Fast Fourier transformation. The example illustrates the practical optimization problems for a development model of the visual system that involves large scale neural network simulations. Finally, this algorithm is compared to an implementation of the same system of equations i...
Design and Implementation of a General Purpose Parallel Programming System
, 1995
"... In scientific computing, the use of parallelism has led to widespread improvements in the performance of complex computations. However, there are many non-scientific general purpose applications that could also benefit from the modest use of parallelism. The users of these applications generally wor ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
In scientific computing, the use of parallelism has led to widespread improvements in the performance of complex computations. However, there are many non-scientific general purpose applications that could also benefit from the modest use of parallelism. The users of these applications generally work in offices possessing large networks of PCs. If programmers could only write programs that could distribute computation through the idle machines on this network, then the users could reap significant performance benefits. But due to the lack of good programming support tools, general purpose applications are unable to make use of this kind of parallel computation. In this paper, we present a model for general purpose parallel computation called the Composite Model, and its implementation as a set of portable language extensions. We then present an example of a language extended with composite constructs. Finally, we describe the compiler technology that allows composite programs to run ef...
A Framework for Semi-Automated Parallel Program Transformation
, 1994
"... Sequential to parallel program transformation is an approach to parallel systems development which removes some of the disadvantages of parallelising compilers and parallel programming. 4P is a suitable paradigm for such transformations. The transformation system accepts a sequential program, perfor ..."
Abstract
- Add to MetaCart
Sequential to parallel program transformation is an approach to parallel systems development which removes some of the disadvantages of parallelising compilers and parallel programming. 4P is a suitable paradigm for such transformations. The transformation system accepts a sequential program, performs partial automatic transformation, and then interacts with the user to generate the corresponding parallel program. Introduction Parallel processing and concurrent computing have become mainstream with increasing demands from industry for high-performance systems. While the basic hardware, operating systems, and communication technology are rapidly providing the elementary levels for dominantly parallel and concurrent open architectures, the software technology cannot keep up with this pace. The development of advanced information technology is therefore currently "software-bound". Parallel and concurrent software is far from achieving the versatility, complexity, robustness and durability...

