Skip to main content
Log in

Designing checkers for programs that run in parallel

  • Published:
Algorithmica Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Adleman, L., Huang, M., and Kompella, K., Efficient Checkers for Number-Theoretic Computations,Inform. and Comput., to appear.

  2. Aggarwal, A., and Anderson, R., A Random NC Algorithm for Depth First Search,Combinatorica,8 (1988), 1–12.

    Google Scholar 

  3. Aggarwal, A., Chazelle, B., Guibas, L., O'Dunlaing, C., and Yap, C., Parallel Computational Geometry,Algorithmica,3 (1988), 293–327.

    Article  Google Scholar 

  4. Alon, N., Babai, L., and Itai, A., Fast and Simple Randomized Parallel Algorithm for the Maximal Independent Set Problem,J. Algorithms,7 (1986), 567–583.

    Article  Google Scholar 

  5. Amato, N., and Preparata, F., An NC1 Parallel 3D Convex Hull Algorithm,Proc. on Computational Geometry, 1993, pp. 289–297.

  6. Beame, P., and Hastad, J., Optimal Bounds for Decision Problems on the CRCW PRAM,J. Assoc. Comput. Mach.,36 (1989), 643–670.

    Google Scholar 

  7. Blum, M., and Kannan, S., Program Correctness Checking⋯and the Design of Programs that Check Their Work,Proc. 22nd Symp. on Theory of Computing, 1989, pp. 86–97.

  8. Blum, M., Luby, M., and Rubinfeld, R., Self-Testing/Correcting with Applications to Numerical Problems,J. Comput. System Sci.,47(3) (1993).

  9. Chandra, A., Fortune, S., and Lipton, R., Unbounded Fan-In Circuits and Associative Functions,J. Comput. System Sci.,30 (1985), 222–234.

    Article  Google Scholar 

  10. Chandra, A., Stockmeyer, L., and Vishkin, U., Constant Depth Reducibility,SIAM J. Comput.,13 (1984), 423–439.

    Article  Google Scholar 

  11. Cole, R., and Vishkin, U., Faster Optimal Parallel Prefix Sums and List Ranking,Inform. and Comput.,70 (1986), 32–53.

    Google Scholar 

  12. Furst, M., Saxe, J., and Sipser, M., Parity, Circuits and the Polynomial Time Hierarchy,Math. Systems Theory,17 (1984), 13–28.

    Article  Google Scholar 

  13. Gazit, H., An Optimal Randomized Parallel Algorithm for Finding Connected Components in a Graph,Proc. Symp. on Foundations of Computer Science, 1986, pp. 492–501.

  14. Goldberg, M., and Spencer, T., A New Parallel Algorithm for the Maximal Independent Set Problem,Proc. Symp. on Foundations of Computer Science, 1987.

  15. Gross, M., Irani, S., Rubinfeld, R., and Seidel, R., Personal communication.

  16. Leighton, F. T.,Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes, Morgan Kaufmann, San Mateo, CA, 1992.

    Google Scholar 

  17. Luby, M., A Simple Parallel Algorithm for the Maximal Independent Set Problem,SIAM J. Comput.,15 (1986), 1036–1053.

    Article  Google Scholar 

  18. Kannan, S., Program Result Checking with Applications, Ph.D. thesis, University of California, Berkeley, CA, 1990.

    Google Scholar 

  19. Karloff, H., A Las Vegas RNC Algorithm for Maximum Matching,Combinatorica,6 (1986), 387–392.

    Google Scholar 

  20. Karp, R., and Ramachandran, V., A Survey of Parallel Algorithms for Shared-Memory Machines, Technical Report No. UCB/CSD 88/408, University of California, Berkeley, CA.

  21. Karp, R., Upfal, E., and Wigderson, A., Constructing a Perfect Matching is in Random NC,Combinatorica,6 (1986), 35–48.

    Google Scholar 

  22. Karp, R., Upfal, E., and Wigderson, A., The Complexity of Parallel Search,J. Comput. System. Sci.,36 (1988), 225–253.

    Article  Google Scholar 

  23. Matias, Y., and Vishkin, U., Converting High Probability into Nearly-Constant Time — with Applications to Parallel Hashing,Proc. Symp. on Theory of Computing, 1991, pp. 307–316.

  24. Mulmuley, K., Vazirani, U., and Vazirani, V., Matching is as Easy as Matrix Inversion,Combinatorica,7 (1987), 105–113.

    Google Scholar 

  25. Preparata, F., and Shamos, M.,Computational Geometry: An Introduction, Springer-Verlag, New York, 1985.

    Google Scholar 

  26. Schieber, B., and Vishkin, U., On Finding Lowest Common Ancestors: Simplification and Parallelization,SIAM J. Comput.,17(6) (1988).

  27. Schönhage, A., and Strassen, V., Schnelle Multiplikation grosser Zahlen,Computing,7, 281–292.

  28. Spivak, M.,Differential Geometry, Vol. 3.

  29. Tamassia, R., and Vitter, J. S., Optimal Parallel Algorithms for Transitive Closure and Point Location in Planar Structures,Proc. ACM Symp. on Parallel Algorithms and Architectures, 1989.

Download references

Author information

Authors and Affiliations

Authors

Additional information

Communicated by A. Borodin.

This research was done while at the Computer Science Division, University of California, Berkeley, and the International Computer Science Institute, Berkeley, California. Supported in part by an IBM Graduate Fellowship and NSF Grant No. CCR 88-13632.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Rubinfeld, R. Designing checkers for programs that run in parallel. Algorithmica 15, 287–301 (1996). https://doi.org/10.1007/BF01961540

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01961540

Key words