Elsevier

Advances in Computers

Volume 19, 1980, Pages 65-112
Advances in Computers

The Structure of Parallel Algorithms

https://doi.org/10.1016/S0065-2458(08)60033-9Get rights and content

Publisher Summary

This chapter presents many examples of parallel algorithms and studies them under a uniform framework. The chapter explains a parallel algorithm as a collection of independent task modules that can be executed in parallel and that communicate with each other during the execution of the algorithm. The chapter explains the three important attributes of a parallel algorithm and classifies parallel algorithms in terms of these attributes. Three orthogonal dimensions of the space of parallel algorithms: concurrency control, module granularity, and communication geometry. The classification of parallel algorithms corresponds naturally to that of parallel architectures. Algorithms for synchronous parallel computers are considered, where examples of algorithms using various communication geometries are presented. Algorithms for asynchronous parallel computers are also considered in the chapter. A number of techniques dealing with the difficulties arising from the asynchronous behavior of computation and the examples are mainly drawn from results in concurrent database systems. This chapter deals with the basic issues and techniques in designing parallel algorithms for various architectures. The chapter concludes that issues concerning algorithms for synchronous parallel computers are quite different from those for asynchronous parallel computers.

References (88)

  • E.A. Ashcroft

    Proving assertions about parallel programs

    J. Comput. Syst. Sci.

    (1975)
  • D. Chazan et al.

    Chaotic relaxation

    Linear Algebra Appl.

    (1969)
  • B. Samadi

    B-trees in a system with multiple users

    Inf. Process. Lett.

    (1976)
  • A. Aho et al.

    “The Design and Analysis of Computer Algorithms.”

    (1975)
  • G.A. Anderson et al.

    Computer interconnection structures: Taxonomy, characteristics, and examples

    ACM Comput. Surv.

    (1975)
  • G.H. Barnes et al.

    The ILLIAC IV computer

    IEEE Trans. Comput.

    (1968)
  • K.E. Batcher

    Sorting networks and their applications

    1968 Spring Joint Comput. Conf.

    (1968)
  • G.M. Baudet

    Asynchronous iterative methods for multiprocessors

    J. Assoc. Comput. Mach.

    (1978)
  • G.M. Baudet

    The design and analysis of algorithms for asynchronous multiprocessors

    (1978)
  • G.M. Baudet et al.

    Optimal sorting algorithms for parallel computers

    IEEE Trans. Comput.

    (1978)
  • G.M. Baudet et al.

    “Parallel Execution of a Sequence of Tasks on an Asynchronous Multiprocessor,”

    (1977)
  • R. Bayer et al.

    Organization and maintenance of large ordered indexes

    Acta Inf.

    (1972)
  • R. Bayer et al.

    Concurrency of operations on B-trees

    Acta Inf.

    (1977)
  • V.E. Benes

    “Mathematical Theory of Connecting Networks and Telephone Traffic.”

    (1965)
  • J.L. Bentley, H.T. Kung, (1979A tree machine for searching problems. Proc. 1979 Internat. Conf. Parallel Processing,...
  • P.A. Berstein et al.

    A system of distributed databases (the fully redundant case)

    IEEE Trans. Software Eng.

    (1978)
  • R.P. Brent

    The parallel evaluation of general arithmetic expressions

    J. Assoc. Comput. Mach.

    (1974)
  • R.P. Brent, H.T. Kung, (1980b) In...
  • R.P. Brent et al.

    “The Area-Time Complexity of Binary Multiplication,”

    (1980)
  • S. Browning

    Algorithms for the tree machine

  • T.C. Chen

    Overlap and pipeline processing

  • T.C. Chen, V.Y. Lum, C. Tung, (1978) The rebound sorter: An efficient sort engine for large files. Proc. 4th Internat....
  • D. Cohen

    “Mathematical Approach to Computational Networks,”

    (1978)
  • E.W. Dijkstra et al.

    On-the-fly garbage collection: An exercise in cooperation

    Commun. ACM

    (1978)
  • P.H. Enslow

    Multiprocessor organization: A survey

    ACM Comput. Surv.

    (1977)
  • K.P. Eswaran et al.

    The notions of consistency and predicate locks in a database system

    Commun. ACM

    (1976)
  • R.W. Floyd, (1967) Assigning meanings to programs. Proc. Symp. Applied Mathematics, pp. 19–32. Am. Math. Soc.,...
  • M.J. Flynn

    Very high-speed computing systems

    Proc. IEEE

    (1966)
  • M. Foster et al.

    The design of VLSI special purpose chip: Example and opinions

    Res. Computer

    (1980)
  • S.H. Fuller et al.

    “The Cm* Review Report,”

    (1977)
  • J. Gray

    Notes on data base operating systems

    “Lecture Notes in Computer Science 60: Operating Systems,”

    (1978)
  • L.J. Guibas et al.

    Direct VLSI implementation of combinatorial algorithms

    (1979)
  • T.G. Hallin et al.

    Pipelining of arithmetic functions

    IEEE Trans, on Comput.

    (1972)
  • F.E. Heart, S.M. Ornstein, W.R. Crowther, W.B. Barker, (1973) A new minicomputer/multiprocessor for the ARPA network....
  • D. Heller

    A survey of parallel algorithms in numerical linear algebra

    SIAM Rev.

    (1978)
  • A.K. Jones et al.

    “Experience using multiprocessor systems: A status report,”

    (1979)
  • A.K. Jones et al.

    Programming issues raised by a multiprocessor

    Proc. IEEE

    (1978)
  • R.M. Karp

    Reducibility among combinational problems

    “Complexity of Computer Computations,”

    (1972)
  • W.H. Kautz et al.

    Cellular interconnection arrays

    IEEE Trans. Comput.

    (1968)
  • R.M. Keller

    Formal verification of parallel programs

    Commun. ACM

    (1976)
  • D.E. Knuth
    (1973)
  • S.R. Kosaraju

    Speed of recognition of context-free languages by array automata

    SIAM J. Comput.

    (1975)
  • D.J. Kuck

    ILLIAC IV software and application programming

    IEEE Trans. Comput.

    (1968)
  • D.J. Kuck

    A survey of parallel machine organization and programming

    ACM Comput. Surv.

    (1977)
  • Cited by (135)

    • A parallel 3D unsteady incompressible flow solver on VPP700

      2001, Parallel Computing
      Citation Excerpt :

      A lot of work is in progress in evolving efficient parallel algorithms to exploit the potential of modern computing trends. Heller [1], Kung [2], Ortega and Voigt [3], etc., have presented a survey of parallel numerical methods that can be used to solve a variety of engineering problems. Parallel computational strategies for the numerical solution of unsteady incompressible flow through Navier–Stokes (NS) equations are being developed by several researchers both on SIMD and MIMD machines.

    • A simulation-based scalability study of parallel systems

      1994, Journal of Parallel and Distributed Computing
    • An Empirical Methodology for Exploring Reconfigurable Architectures

      1993, Journal of Parallel and Distributed Computing
    View all citing articles on Scopus
    View full text