Designing checkers for programs that run in parallel

Program correctness for parallel programs is an even more problematic issue than for serial programs. We extend the theory of program result checking to parallel programs, and find general techniques for designing such result checkers that work for many basic problems in parallel computation. These result checkers are simple to program and are more efficient than the actual computation of the result. For example, sorting, multiplication, parity, the all-pairs shortest-path problem and majority all have constant depth result checkers, and the result checkers for all but the last problem use a linear number of processors. We show that there are P-complete problems (evaluating straight-line programs, linear programming) that have very fast, even constant depth, result checkers.

[1]  Richard J. Anderson,et al.  A random 1-011-011-01algorithm for depth first search , 1988 .

[2]  Manuel Blum,et al.  Designing programs that check their work , 1989, STOC '89.

[3]  Eli Upfal,et al.  Constructing a perfect matching is in random NC , 1985, STOC '85.

[4]  Vijay V. Vazirani,et al.  Matching is as easy as matrix inversion , 1987, STOC.

[5]  Uzi Vishkin,et al.  Converting high probability into nearly-constant time—with applications to parallel hashing , 1991, STOC '91.

[6]  Hillel Gazit,et al.  An optimal randomized parallel algorithm for finding connected components in a graph , 1986, 27th Annual Symposium on Foundations of Computer Science (sfcs 1986).

[7]  Eli Upfal,et al.  The Complexity of Parallel Search , 1988, J. Comput. Syst. Sci..

[8]  Uzi Vishkin,et al.  Constant Depth Reducibility , 1984, SIAM J. Comput..

[9]  Sajal K. Das,et al.  Book Review: Introduction to Parallel Algorithms and Architectures : Arrays, Trees, Hypercubes by F. T. Leighton (Morgan Kauffman Pub, 1992) , 1992, SIGA.

[10]  Nancy M. Amato,et al.  An NC parallel 3D convex hull algorithm , 1993, SCG '93.

[11]  Michael Luby,et al.  A simple parallel algorithm for the maximal independent set problem , 1985, STOC '85.

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

[13]  F. Leighton,et al.  Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes , 1991 .

[14]  Michael Sipser,et al.  Parity, circuits, and the polynomial-time hierarchy , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[15]  Johan Håstad,et al.  Optimal bounds for decision problems on the CRCW PRAM , 1987, STOC '87.

[16]  Manuel Blum,et al.  Self-testing/correcting with applications to numerical problems , 1990, STOC '90.

[17]  Richard J. Lipton,et al.  Unbounded fan-in circuits and associative functions , 1983, J. Comput. Syst. Sci..

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

[19]  Richard Cole,et al.  Faster Optimal Parallel Prefix Sums and List Ranking , 1989, Inf. Comput..

[20]  Richard M. Karp,et al.  A Survey of Parallel Algorithms for Shared-Memory Machines , 1988 .

[21]  Arnold Schönhage,et al.  Schnelle Multiplikation großer Zahlen , 1971, Computing.

[22]  Howard J. Karloff A las vegas rnc algorithm for maximum matching , 1986, Comb..

[23]  Mark K. Goldberg,et al.  A new parallel algorithm for the maximal independent set problem , 1987, 28th Annual Symposium on Foundations of Computer Science (sfcs 1987).

[24]  Uzi Vishkin,et al.  On Finding Lowest Common Ancestors: Simplification and Parallelization , 1988, AWOC.

[25]  Kireeti Kompella,et al.  Efficient Checkers for Number-Theoretic Computations , 1995, Inf. Comput..

[26]  Noga Alon,et al.  A Fast and Simple Randomized Parallel Algorithm for the Maximal Independent Set Problem , 1985, J. Algorithms.

[27]  Jeffrey Scott Vitter,et al.  Optimal parallel algorithms for transitive closure and point location in planar structures , 1989, SPAA '89.

[28]  Alok Aggarwal,et al.  A random NC algorithm for depth first search , 1987, Comb..