Results 1  10
of
15
Models of Parallel Computation: A Survey and Synthesis
 INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES
, 1995
"... In the realm of sequential computing the random access machine has successufully provided an underlying model of computation that promoted consistency and coordination among algorithm developers, computer architects and language experts. In the realm of parallel computing, however, there has been no ..."
Abstract

Cited by 52 (0 self)
 Add to MetaCart
In the realm of sequential computing the random access machine has successufully provided an underlying model of computation that promoted consistency and coordination among algorithm developers, computer architects and language experts. In the realm of parallel computing, however, there has been no similar success. The need for such a unifying parallel model or set of models is heightened by the greater demand for performance and the greater diversity among machines. Yet the modeling of parallel computing still seems to be mired in controversy and chaos. This paper is an excerpt from a study which presents broad range of models of parallel computation and the different roles they serve in algorithm, language and machine design. The objective is to better understand which model characteristics are important to each design community in order to elucidate the requirements of a unifying paradigm. As an impetus for discussion, we conclude by suggesting a model of parallel computation which...
Parallelization in Calculational Forms
 In 25th ACM Symposium on Principles of Programming Languages
, 1998
"... The problems involved in developing efficient parallel programs have proved harder than those in developing efficient sequential ones, both for programmers and for compilers. Although program calculation has been found to be a promising way to solve these problems in the sequential world, we believe ..."
Abstract

Cited by 31 (23 self)
 Add to MetaCart
The problems involved in developing efficient parallel programs have proved harder than those in developing efficient sequential ones, both for programmers and for compilers. Although program calculation has been found to be a promising way to solve these problems in the sequential world, we believe that it needs much more effort to study its effective use in the parallel world. In this paper, we propose a calculational framework for the derivation of efficient parallel programs with two main innovations:  We propose a novel inductive synthesis lemma based on which an elementary but powerful parallelization theorem is developed.  We make the first attempt to construct a calculational algorithm for parallelization, deriving associative operators from data type definition and making full use of existing fusion and tupling calculations. Being more constructive, our method is not only helpful in the design of efficient parallel programs in general but also promising in the construc...
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...
A library of constructive skeletons for sequential style of parallel programming
 In InfoScale ’06: Proceedings of the 1st international conference on Scalable information systems, volume 152 of ACM International Conference Proceeding Series
, 2006
"... With the increasing popularity of parallel programming environments such as PC clusters, more and more sequential programmers, with little knowledge about parallel architectures and parallel programming, are hoping to write parallel programs. Numerous attempts have been made to develop highlevel pa ..."
Abstract

Cited by 11 (7 self)
 Add to MetaCart
With the increasing popularity of parallel programming environments such as PC clusters, more and more sequential programmers, with little knowledge about parallel architectures and parallel programming, are hoping to write parallel programs. Numerous attempts have been made to develop highlevel parallel programming libraries that use abstraction to hide lowlevel concerns and reduce difficulties in parallel programming. Among them, libraries of parallel skeletons have emerged as a promising way towards this direction. Unfortunately, these libraries are not well accepted by sequential programmers, because of incomplete elimination of lowerlevel details, adhoc selection of library functions, unsatisfactory performance, or lack of convincing application examples. This paper addresses principle of designing skeleton libraries of parallel programming and reports implementation details and practical applications of a skeleton library SkeTo. The SkeTo library is unique in its feature that it has a solid theoretical foundation based on the theory of Constructive Algorithmics, and is practical to be used to describe various parallel computations in a sequential manner. 1.
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.
Automatic Inversion Generates DivideandConquer Parallel Programs
"... Divideandconquer algorithms are suitable for modern parallel machines, tending to have large amounts of inherent parallelism and working well with caches and deep memory hierarchies. Among others, list homomorphisms are a class of recursive functions on lists, which match very well with the divide ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Divideandconquer algorithms are suitable for modern parallel machines, tending to have large amounts of inherent parallelism and working well with caches and deep memory hierarchies. Among others, list homomorphisms are a class of recursive functions on lists, which match very well with the divideandconquer paradigm. However, direct programming with list homomorphisms is a challenge for many programmers. In this paper, we propose and implement a novel system that can automatically derive costoptimal list homomorphisms from a pair of sequential programs, based on the third homomorphism theorem. Our idea is to reduce extraction of list homomorphisms to derivation of weak right inverses. We show that a weak right inverse always exists and can be automatically generated from a wide class of sequential programs. We demonstrate our system with several nontrivial examples, including the maximum prefix sum problem, the prefix sum computation, the maximum segment sum problem, and the lineofsight problem. The experimental results show practical efficiency of our automatic parallelization algorithm and good speedups of the generated parallel programs.
A Communication Model for Small Messages with InfiniBand
 PARS Proceedings
, 2005
"... Designing new and optimal algorithms for a specific architecture requires accurate modelling of this architecture. This is especially needed to choose one out of different solutions for the same problem or to proof a lower bound to a problem. Assumed that the model is highly accurate, a given algori ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
Designing new and optimal algorithms for a specific architecture requires accurate modelling of this architecture. This is especially needed to choose one out of different solutions for the same problem or to proof a lower bound to a problem. Assumed that the model is highly accurate, a given algorithm can be seen as optimal solution if it reaches the lower bound. Therefore the accuracy of a model is extremely important for algorithmic design. A detailed model can also help to understand the architectural details and their influence on the running time of different solutions and it can be used to derive better algorithms for a given problem. This work introduces some architectural specialities of the InfiniBand network and shows that most widely used models introduce inaccuracies for sending small messages with InfiniBand. Therefore a comparative model analysis is performed to find the most accurate model for InfiniBand. Basing on this analysis and a description of the architectural specialities of InfiniBand, a new, more accurate but also much complexer model called LoP is deduced from the LogP which can be used to assess the running time of different algorithms. The newly developed model can be used to find lower bounds for algorithmic problems and to enhance several algorithms. 1
Optimal parallel prefix on the postal model
 J. Information Science and Engineering
, 2003
"... This paper explores the prefix operation on a messagepassing fully connected multicomputer with multiport postal communication. We present an exact communication lower bound for the prefix operation on the model. Two efficient parallel prefix algorithms are also presented; they are optimal in terms ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
This paper explores the prefix operation on a messagepassing fully connected multicomputer with multiport postal communication. We present an exact communication lower bound for the prefix operation on the model. Two efficient parallel prefix algorithms are also presented; they are optimal in terms of the number of communication steps. For an input of size n, one of the algorithms using n processors is also timeoptimal; the other algorithm using p < n processors can be costoptimal and can achieve linear speedup.
Diff: A Powerful Parallel Skeleton
 In: The 2000 International Conference on Parallel and Distributed Processing Techniques and Application. Volume 4., Las Vegas, CSREA
, 2000
"... Skeleton parallel programming encourages programmers to build a parallel program from readymade components for which efficient implementations are known to exist, making both the parallel program development and the parallelization process easier. However, programmers often suffer from the difficul ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Skeleton parallel programming encourages programmers to build a parallel program from readymade components for which efficient implementations are known to exist, making both the parallel program development and the parallelization process easier. However, programmers often suffer from the difficulty to chooseaproper combination of parallel primitives so as to construct efficient parallel programs. To overcome this difficulty, we propose a new powerful parallel skeleton diff derived from the diffusion theorem, showing how it can be used to naturally code efficient solutions to problems, and how it can be efficiently implementedin parallel using MPI (Message Passing Interface). Keywords: Parallel Skeleton, BirdMeertens Formalism, Program Transformation, MPI. 1 Introduction Parallel programming has proved to be a difficult task, requiring expert knowledge of both parallel algorithms and hardware architectures to achieve good results. The use of parallel skeletons can help to struc...
A New Parallel Skeleton for General Accumulative Computations
 International Journal of Parallel Programming
, 2004
"... this paper, we propose a powerful and general parallel skeleton called accumulate and describe its efficientimplementation in C++ with MPI (Message Passing Interface) (18) as a solution to the above problems. Unlike the approaches that apply such optimizations as loop restructuring to the target p ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
this paper, we propose a powerful and general parallel skeleton called accumulate and describe its efficientimplementation in C++ with MPI (Message Passing Interface) (18) as a solution to the above problems. Unlike the approaches that apply such optimizations as loop restructuring to the target program, our approach provides a general recursive computation with accumulation as a library function (skeleton) with an optimized implementation. We are based on the data parallel programming model of BMF, which provides us with a concise way to describe and manipulate parallel programs. The main advantages of accumulate can be summarized as follows