Vector Models for Data-parallel ComputingVector 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. Guy E. Blelloch is an Assistant Professor of Computer Science and a Principal Investigator with the Super Compiler and Advanced Language project at Carnegie Mellon University. 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. |
Contents
Introduction | 1 |
Parallel Vector Models | 19 |
The Scan Primitives | 35 |
Copyright | |
19 other sections not shown
Common terms and phrases
access-restricted allocate applied binary boolean boolean circuit Chapter Charles Leiserson collection-oriented languages COMMON LISP compiler complexity of O(1 Connection Machine constant number contains data structures defined defop defun described in Section discussed distribute edges element complexity elementwise elwise EREW example field Figure flags floating-point function gloop graph halving merge implemented indirect addressing input integer keys length values mapped max-scan merge algorithm nested parallelism number of elements O(lgn output over-elements P-RAM model pack PARALATION LISP parallel vector models permute permute instruction pivot pointers quicksort radix sort random access machine recursive replicating theorem representation scalar memory scalar processor scan instructions scan operations scan primitives scan vector instructions scan vector model segdes segment descriptor segmented scans segmented vector segmented versions significand SIMD simulated machines split radix sort step complexity SV-LISP technique V-RAM variable vector instructions vector memory vector processor vertex vertices zerop



