Algorithmic Skeletons: Structured Management of Parallel Computation

This book introduces a new approach to the design and implementation of software systems which will help users of large scale parallel systems coordinate many concurrent activities toward a single goal. It assesses the strengths an weaknesses of this approach with existing alternatives.Cole's system proposes a selection of independent algorithmic skeletons, each of which describes the structure of a particular style of algorithm. The user must describe a solution to a problem as an instance of the appropriate skeleton. The implementation task is simplified by the fact that each skeleton may be considered independently, in contrast to the monolithic programming interfaces of existing systems at a similar level of abstraction.The book describes four skeletons based on the notions of fixed degree divide and conquer, task queues, iterative combination, and clustering. Each is introduced in terms of the abstraction it presents to the user. Implementation on a square grid of autonomous processor memory pairs is considered and examples of problems which could be solved in terms of the skeleton are presented.Murray I. Cole is a Lecturer in the Computing Science Department of the University of Glasgow. "Algorithmic Skeletons" is included in the series Research Monographs in Parallel and Distributed Computing, Copublished with Pitman Publishing,

[1]  Inmos Limited,et al.  OCCAM 2 reference manual , 1988 .

[2]  Carla D. Savage A Systolic Data Structure Chip for Connectivity Problems , 1981 .

[3]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[4]  Paul H. J. Kelly Functional programming for loosely-coupled multiprocessors , 1989, Research monographs in parallel and distributed computing.

[5]  A. Rossier Letter to the Editor , 1986, Paraplegia.

[6]  Wojciech Rytter,et al.  Efficient parallel algorithms , 1988 .

[7]  Victor J. Rayward-Smith,et al.  Towards the parallel implementation of a generalised combinatorial search algorithm on MIMD parallel computers , 1989 .

[8]  Jørgen Staunstrup,et al.  Problem-heap: A Paradigm for Multiprocessor Algorithms , 1985 .

[9]  Kai Hwang,et al.  Computer architecture and parallel processing , 1984, McGraw-Hill Series in computer organization and architecture.

[10]  VishkinUzi,et al.  Randomized and deterministic simulations of PRAMs by parallel machines with restricted granularity of parallel memories , 1984 .

[11]  Eli Upfal,et al.  How to share memory in a distributed system , 1984, JACM.

[12]  Donald E. Knuth,et al.  Big Omicron and big Omega and big Theta , 1976, SIGA.

[13]  H. T. Kung,et al.  Sorting on a mesh-connected parallel computer , 1977, CACM.

[14]  Frans J. Peters,et al.  Tree machines and divide-and-conquer algorithms , 1981, CONPAR.

[15]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[16]  Ralph Grishman,et al.  The NYU Ultracomputer—Designing an MIMD Shared Memory Parallel Computer , 1983, IEEE Transactions on Computers.

[17]  J. H. Wilkinson The algebraic eigenvalue problem , 1966 .

[18]  Leslie G. Valiant,et al.  Universal schemes for parallel communication , 1981, STOC '81.

[19]  A. Gottleib,et al.  The nyu ultracomputer- designing a mimd shared memory parallel computer , 1983 .

[20]  Michael J. Quinn,et al.  Designing Efficient Algorithms for Parallel Computers , 1987 .

[21]  Ellis Horowitz,et al.  Divide-and-Conquer for Parallel Processing , 1983, IEEE Transactions on Computers.

[22]  Corporate Inmos Limited Transputer Reference Manual , 1988 .

[23]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[24]  Geoff P. McKeown,et al.  A Special Purpose MIMD Parallel Processor , 1985, Inf. Process. Lett..

[25]  Simon L. Peyton Jones,et al.  Parallel Implementations of Functional Programming Languages , 1989, Comput. J..

[26]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[27]  Paul Hudak Para-Functional Programming , 1986, Computer.

[28]  Arvind,et al.  Future Scientific Programming on Parallel Machines , 1988, J. Parallel Distributed Comput..

[29]  Paul Hudak,et al.  Distributed execution of functional programs using serial combinators , 1985, IEEE Transactions on Computers.

[30]  Allan Gottlieb,et al.  Highly parallel computing , 1989, Benjamin/Cummings Series in computer science and engineering.

[31]  Peter Møller-Nielsen,et al.  Problem-heap: A paradigm for multiprocesor algorithms , 1987, Parallel Comput..