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 |
Conclusion | 14 |
Parallel Vector Models | 19 |
Copyright | |
20 other sections not shown
Common terms and phrases
allocate applied apply-to-each boolean boolean circuit branch Chapter collection-oriented languages COMMON LISP compiler complexity of O(1 Computing Connection Machine constant number contains data structures defined defop defun described in Section distribute edges element complexity elementwise elwise EREW evaluation tree example execute Figure flag floating-point function gloop graph grid halving merge implemented indirect addressing input integer k-D tree keys mapped matrix max-scan merge algorithm nested collections nested parallelism number of calls number of elements O(lg output over-elements P-RAM model pack PARALATION LISP parallel computers parallel vector models permute permute instruction pivot pointers quicksort radix sort random access machine representation requires 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 simulated machines step complexity SV-LISP technique V-RAM variable vector instructions vector processor vertex vertices zerop