Vector Models for Data-Parallel Computing describes a model of parallelism that extends and formalizes the Data-Parallel model on which the Connection Machine and other supercomputers are based. It presents many algorithms based on the model, ranging from graph algorithms to numerical algorithms, and argues that data-parallel models are not only practical and can be applied to a surprisingly wide variety of problems, they are also well suited for very-high-level languages and lead to a concise and clear description of algorithms and their complexity. Many of the author's ideas have been incorporated into the instruction set and into algorithms currently running on the Connection Machine. The book includes the definition of a parallel vector machine; an extensive description of the uses of the scan (also called parallel-prefix) operations; the introduction of segmented vector operations; parallel data structures for trees, graphs, and grids; many parallel computational-geometry, graph, numerical and sorting algorithms; techniques for compiling nested parallelism; a compiler for Paralation Lisp; and details on the implementation of the scan operations.
Contents
Introduction • Parallel Vector Models • The Scan Primitives • Computational-Geometry Algorithms • Graph Algorithms • Numerical Algorithms • Languages and Compilers • Correction-Oriented Languages • Flattening Nested Parallelism • A Compiler for Paralation Lisp • Paralation-Lisp Code • The Scan Vector Model • Data Structures • Implementing Parallel Vector Models • Implementing the Scan Operations • Conclusions • Glossary