Results 11  20
of
70
Towards the Classification of Algorithmic Skeletons
, 1996
"... Algorithmic skeletons are seen as being highlevel, parallel programming language constructs encapsulating the expression of parallelism, communication, synchronisation, embedding, and costing. This report examines the classification of algorithmic skeletons, proposing one classification, and examin ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
Algorithmic skeletons are seen as being highlevel, parallel programming language constructs encapsulating the expression of parallelism, communication, synchronisation, embedding, and costing. This report examines the classification of algorithmic skeletons, proposing one classification, and examining others which have been devised. Various algorithmic skeletons are examined, and these are categorised to form a core of algorithmic skeletons suitable for a general classification which is based on practical experience in the use of such skeletons. This categorisation is compared with others which have been proposed. Similarly, other skeletonlike approaches are briefly examined. 1 Introduction 1.1 Algorithmic Skeletons Algorithmic skeletons are envisaged as highlevel, parallel programming language constructs encapsulating the expression of parallelism, communication, synchronisation and embedding, and having an associated cost complexity. Skeletons are to parallel threads as sequenti...
An Accumulative Parallel Skeleton for All
, 2001
"... Parallel skeletons intend to encourage programmers to build... ..."
Abstract

Cited by 13 (10 self)
 Add to MetaCart
Parallel skeletons intend to encourage programmers to build...
The Automated Transformation of Abstract Specifications of Numerical Algorithms into Efficient Array Processor Implementations
 Science of Computer Programming
, 1997
"... We present a set of program transformations which are applied automatically to convert abstract functional specifications of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, wh ..."
Abstract

Cited by 12 (5 self)
 Add to MetaCart
We present a set of program transformations which are applied automatically to convert abstract functional specifications of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, which provides a functional model of the array operations supported by the DAP programming language. The transformations are shown to be complete. We present specifications and derivations of two example algorithms: an algorithm for computing eigensystems and an algorithm for solving systems of linear equations. For the former, we compare the execution performance of the implementation derived by transformation with the performance of an independent, manually constructed implementation; the efficiency of the derived implementation matches that of the manually constructed implementation.
Systematic Parallel Programming
, 2000
"... reasoning, trace semantics. Parallel computers have not yet had the expected impact on mainstream computing. Parallelism adds a level of complexity to the programming task that makes it very errorprone. Moreover, a large variety ofvery di erent parallel architectures exists. Porting an implementati ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
reasoning, trace semantics. Parallel computers have not yet had the expected impact on mainstream computing. Parallelism adds a level of complexity to the programming task that makes it very errorprone. Moreover, a large variety ofvery di erent parallel architectures exists. Porting an implementation from one machine to another may require substantial changes. This thesis addresses some of these problems by developing a formal basis for the design of parallel programs in form of a re nement calculus. The calculus allows the stepwise formal derivation of an abstract, lowlevel implementation from a trusted, highlevel speci cation. The calculus thus helps structuring and documenting the development process. Portability is increased, because the introduction of a machinedependent feature can be located in the re nement tree. Development e orts above this point in the tree are independent of that feature and are thus reusable. Moreover, the discovery of new, possibly more
Clumps: A Candidate Model Of Efficient, General Purpose Parallel Computation
, 1994
"... A new model of parallel computation is proposed, CLUMPS (Campbell's Lenient, Unified Model of Parallel Systems). This is composed of an abstract machine with an associated cost model, and aims to be more portable, reflective of costs, expressible and encouraging of more efficient implementations of ..."
Abstract

Cited by 10 (6 self)
 Add to MetaCart
A new model of parallel computation is proposed, CLUMPS (Campbell's Lenient, Unified Model of Parallel Systems). This is composed of an abstract machine with an associated cost model, and aims to be more portable, reflective of costs, expressible and encouraging of more efficient implementations of algorithms than other existing models. It is shown that each basic parallel architecture class can congruently perform each other's computations, but the congruent simulation of each other's communication is not generally possible (where for a simulation to be congruent the simulation costs on the target architecture are asymptotically equivalent to the implementation costs on the native architectures). This is reflected in the CLUMPS abstract machine through its flexibility in terms of program control and memory access. The congruence requirement is relaxed so that though strict congruence may not be achieved according to the above definition, communication costs are reflectively accounted ...
List Homomorphic Parallel Algorithms for Bracket Matching
 Department of Computer Science, University of Edinburgh
, 1993
"... We present a family of parallel algorithms for simple language recognition problems involving bracket matching. The algorithms are expressed in the BirdMeertens Formalism, exploiting only list operations which are inherently massively parallel. Our intention is to illustrate the practical efficacy ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
We present a family of parallel algorithms for simple language recognition problems involving bracket matching. The algorithms are expressed in the BirdMeertens Formalism, exploiting only list operations which are inherently massively parallel. Our intention is to illustrate the practical efficacy with which such algorithms can be derived and expressed given the support of a well understood theoretical foundation. One of the variants produced is of particular interest in that it exploits the same theoretical result twice to produce nested parallelism. 1 Introduction In [8], we investigated an informal methodology for the generation of parallel algorithms based upon exploitation of a fundamental result from the BirdMeertens "theory of lists". Our main example was an algorithm for the maximum segment sum problem. In this report we provide further examples of the approach. For completeness, the remainder of this section and sections 2 and 3 repeat the introductory material from [8]. Re...
Resource Optimization Via Structured Parallel Programming
 PROGRAMMING ENVIRONMENTS FOR MASSIVELY PARALLEL DISTRIBUTED SYSTEMS
, 1993
"... When dealing with massively parallel architectures, many difficult problems have to be solved. In this paper we will show how, by adopting a structured style of programming and a set of templatebased compiling tools, most of the burden required in writing massively parallel applications can be move ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
When dealing with massively parallel architectures, many difficult problems have to be solved. In this paper we will show how, by adopting a structured style of programming and a set of templatebased compiling tools, most of the burden required in writing massively parallel applications can be moved to the compiler design phase. In particular, we will discuss how the problem of implementing a parallel application onto a machine having a limited number of processing elements can be tackled. By exploiting information on the structure of the parallelism coming from the high level language and the templates in the compiling tools, we are able to devise a polynomial time procedure that achieves efficient implementation of structured parallel programs onto distributed memory, MIMD machines based on a regular interconnection topology and having a limited number of resources.
Diffusion: Calculating Efficient Parallel Programs
 IN 1999 ACM SIGPLAN WORKSHOP ON PARTIAL EVALUATION AND SEMANTICSBASED PROGRAM MANIPULATION (PEPM ’99
, 1999
"... Parallel primitives (skeletons) intend to encourage programmers to build a parallel program from readymade components for which efficient implementations are known to exist, making the parallelization process easier. However, programmers often suffer from the difficulty to choose a combination of p ..."
Abstract

Cited by 9 (7 self)
 Add to MetaCart
Parallel primitives (skeletons) intend to encourage programmers to build a parallel program from readymade components for which efficient implementations are known to exist, making the parallelization process easier. However, programmers often suffer from the difficulty to choose a combination of proper parallel primitives so as to construct efficient parallel programs. To overcome this difficulty, we shall propose a new transformation, called diffusion, which can efficiently decompose a recursive definition into several functions such that each function can be described by some parallel primitive. This allows programmers to describe algorithms in a more natural recursive form. We demonstrate our idea with several interesting examples. Our diffusion transformation should be significant not only in development of new parallel algorithms, but also in construction of parallelizing compilers.
Towards a Scalable Parallel Object Database  The Bulk Synchronous Parallel Approach
, 1996
"... Parallel computers have been successfully deployed in many scientific and numerical application areas, although their use in nonnumerical and database applications has been scarce. In this report, we first survey the architectural advancements beginning to make generalpurpose parallel computing co ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
Parallel computers have been successfully deployed in many scientific and numerical application areas, although their use in nonnumerical and database applications has been scarce. In this report, we first survey the architectural advancements beginning to make generalpurpose parallel computing costeffective, the requirements for nonnumerical (or symbolic) applications, and the previous attempts to develop parallel databases. The central theme of the Bulk Synchronous Parallel model is to provide a high level abstraction of parallel computing hardware whilst providing a realisation of a parallel programming model that enables architecture independent programs to deliver scalable performance on diverse hardware platforms. Therefore, the primary objective of this report is to investigate the feasibility of developing a portable, scalable, parallel object database, based on the Bulk Synchronous Parallel model of computation. In particular, we devise a way of providing highlevel abstra...
PROMOTER  An ApplicationOriented 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 distributedmemory 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 distributedmemory 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...