Parallel Solutions to Geometric Problems in the Scan Model of Computation

This paper describes several parallel algorithms that solve geometric problems. The algorithms are based on a vector model of computation-the scan model. The purpose of this paper is both to show how the model can be used and to formulate a set of practical algorithms. The scan model is based on a small set of operations on vectors of atomic values. It differs from the P-RAM models both in that it includes a set of scan primitives, also called parallel prefix computations, and in that it is a strictly data-parallel model. A very useful abstraction in the scan model is the segment abstraction, the subdivision of a vector into a collection of independent smaller vectors. The segment abstraction permits a clean formulation of divide-and-conquer algorithms and is used heavily in the algorithms described in this paper. Within the scan model, using the operations and routines defined, the paper describes a k-D tree algorithm requiring O(lg n) calls to the primitives for n points, a closest-pair algorithm requiring O(lg n) calls to the primitives, a line-drawing algorithm requiring O(1) calls to the primitives, a line-of-sight algorithm requiring O(1) calls to the primitives, and finally, three different convex-hull algorithms. The last convex-hull algorithm, merge-hull, utilizes a generalized binary search technique using divide-and-conquer with the segment abstraction. The paper also describes how to implement the CREW version of Cole's merge sort in O(lg n) calls to the primitives. All these algorithms should be noted for their simplicity rather than their complexity; many of them are parallel versions of known serial algorithms. Most of the algorithms discussed in this paper have been implemented on the Connection Machine, a highly parallel single instruction multiple data computer.

[1]  Leslie G. Valiant,et al.  Universal circuits (Preliminary Report) , 1976, STOC '76.

[2]  Richard Cole,et al.  Parallel merge sort , 1988, 27th Annual Symposium on Foundations of Computer Science (sfcs 1986).

[3]  Robert F. Sproull,et al.  Principles in interactive computer graphics , 1973 .

[4]  Ray A. Jarvis,et al.  On the Identification of the Convex Hull of a Finite Set of Points in the Plane , 1973, Inf. Process. Lett..

[5]  Michael Ian Shamos,et al.  Divide-and-conquer in multidimensional space , 1976, STOC '76.

[6]  Selim G. Akl Two Remarks on a Convex Hull Algorithm , 1979, Inf. Process. Lett..

[7]  Stephen A. Cook,et al.  A Taxonomy of Problems with Fast Parallel Algorithms , 1985, Inf. Control..

[8]  Journal of the Association for Computing Machinery , 1961, Nature.

[9]  Mikhail J. Atallah,et al.  Efficient plane sweeping in parallel , 1986, SCG '86.

[10]  Steven Fortune,et al.  Parallelism in random access machines , 1978, STOC.

[11]  Stephen M. Omohundro,et al.  Efficient Algorithms with Neural Network Behavior , 1987, Complex Syst..

[12]  Richard P. Brent,et al.  The Parallel Evaluation of General Arithmetic Expressions , 1974, JACM.

[13]  Russ Miller,et al.  Efficient Parallel Convex Hull Algorithms , 1988, IEEE Trans. Computers.

[14]  Guy E. Blelloch,et al.  Scan primitives for vector computers , 1990, Proceedings SUPERCOMPUTING '90.

[15]  Guy E. Blelloch,et al.  Vector Models for Data-Parallel Computing , 1990 .

[16]  Allan Borodin,et al.  On Relating Time and Space to Size and Depth , 1977, SIAM J. Comput..

[17]  Herbert Freeman,et al.  Computer Processing of Line-Drawing Images , 1974, CSUR.

[18]  Richard Cole,et al.  Deterministic coin tossing and accelerating cascades: micro and macro techniques for designing parallel algorithms , 1986, STOC '86.

[19]  Mikhail J. Atallah,et al.  Efficient Parallel Solutions to Some Geometric Problems , 1986, J. Parallel Distributed Comput..

[20]  Uzi Vishkin,et al.  Finding the Maximum, Merging, and Sorting in a Parallel Computation Model , 1981, J. Algorithms.

[21]  Richard Cole,et al.  Optimal parallel algorithms for polygon and point-set problems , 1988, SCG '88.

[22]  BentleyJon Louis Multidimensional binary search trees used for associative searching , 1975 .

[23]  Richard Cole,et al.  Cascading divide-and-conquer: A technique for designing parallel algorithms , 1989, 28th Annual Symposium on Foundations of Computer Science (sfcs 1987).

[24]  Jon Louis Bentley,et al.  An Algorithm for Finding Best Matches in Logarithmic Expected Time , 1977, TOMS.

[25]  Jan van Leeuwen,et al.  Maintenance of Configurations in the Plane , 1981, J. Comput. Syst. Sci..

[26]  Jon Louis Bentley,et al.  Multidimensional binary search trees used for associative searching , 1975, CACM.

[27]  Leonidas J. Guibas,et al.  Parallel computational geometry , 1988, 26th Annual Symposium on Foundations of Computer Science (sfcs 1985).

[28]  Leslie M. Goldschlager,et al.  A universal interconnection pattern for parallel computers , 1982, JACM.

[29]  Guy E. Blelloch,et al.  Vcode: a data-parallel intermediate language , 1990, [1990 Proceedings] The Third Symposium on the Frontiers of Massively Parallel Computation.

[30]  Guy E. Blelloch,et al.  Scans as Primitive Parallel Operations , 1989, ICPP.

[31]  Michael Ian Shamos,et al.  Computational geometry: an introduction , 1985 .

[32]  Larry J. Stockmeyer,et al.  A characterization of the power of vector machines , 1974, STOC '74.