Skip to main content

On the multi-threaded computation of modular polynomial greatest common divisors

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 591))

Abstract

We present a parallelization of the Brown-Collins algorithm in the PARSAC-2 Computer Algebra system, and we describe the design of our S- threads parallelization environment. PARSAC-2 is a parallel extension of SAC-2 built upon multiple threads of control provided by S-threads. The Brown-Collins algorithm computes the g.c.d. and its co-factors of two polynomials in Zp[x 1,..., x r], r ≥ 2, by first reducing the problem to multiple g.c.d. calculations of modular homomorphic images (MHI) in Zp[x 2,..., x r ], and then recovering the result by interpolation. After studying timings of the SAC-2 implementation, we first parallelize the interpolation algorithm, and then we parallelize the main MHI loop by executing the modular g.c.d. computations concurrently. We determine speed-up's and speed-up efficiencies over a wide range of polynomials.

This material is based upon work supported by the National Science Foundation under Award No. CCR-9009396.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Mike Accetta, Robert Baron, William Bolosky, David Golub, Richard Rashid, Avadis Tevanian, and Michael Young. Mach: A new kernel foundation for UNIX development. In Proc. Summer USENIX Conference, July 1986.

    Google Scholar 

  2. George Almasi and Alan Gottlieb. Highly Parallel Computing. Benjamin/Cummings Publishing Company, 1989.

    Google Scholar 

  3. W. S. Brown. On Euclid's algorithm and the computation of polynomial greatest common divisors. Journal of the ACM, 18(4):478–504, October 1971.

    Article  Google Scholar 

  4. Alan Borodin, Joachim von zur Gathen, and John Hopcroft. Fast parallel matrix and GCD computations. Information and Control, 52:241–256, 1982.

    Article  Google Scholar 

  5. Eric C. Cooper and Richard P. Draves, C Threads. Technical Report CMU-CS-88-154, Computer Science Department, Carnegie Mellon University, Pittsburgh, PA 15213, June 1988.

    Google Scholar 

  6. Nicholas Carriero and David Gelernter. Linda in context. Communications of the ACM, 32(4), April 1989.

    Google Scholar 

  7. Bruce Char, Keith Geddes, and Gaston Gonnet. GCDHEU: Heuristic polynomial GCD algorithm based on integer GCD computation. In John Fitch, editor, International Symposium on Symbolic and Algebraic Computation, volume 174 of LNCS, pages 285–296, Cambridge, England, July 1984. Springer-Verlag. (Proc. EUROSAM'84).

    Google Scholar 

  8. Bruce Char. Progress report on a system for general-purpose parallel symbolic algebraic computation. In Shunro Watanabe and Morio Nagata, editors, Proc. ISSAC'90, pages 96–103, Tokyo, Japan, August 1990. ACM-SIGSAM, ACM Press.

    Google Scholar 

  9. G. E. Collins and R. G. K. Loos. SAC-2 system documentation. On-line documentation and program documentation. In Europe available from: Prof. R. Loos, Universität Tübingen, Informatik, D-7400 Tübingen, W-Germany. In the U.S.A. available from: Prof. G. E. Collins, Ohio State University, Computer Science, Columbus, OH 43210.

    Google Scholar 

  10. J. Della Dora and J. Fitch, editors. Computer Algebra and Parallelism. Computational Mathematics and Applications. Academic Press, London, 1989. (Proc. CAP'88, Grenoble, France, June 1988).

    Google Scholar 

  11. J.H. Davenport and Y. Robert. VLSI and Computer Algebra: the g.c.d. example. In Dynamical Systems and Cellular Automata pages 359–367. Academic Press, London-New York, 1985.

    Google Scholar 

  12. J.H. Davenport, Y. Siret, and E. Tournier. Computer Algebra, Systems and Algorithms for Algebraic Computation. Academic Press, 1988.

    Google Scholar 

  13. Robert H. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501–538, October 1985.

    Article  Google Scholar 

  14. Erich Kaltofen. Computing with polynomials given by straight-line programs I: Greatest common divisors. In Proc. 17th ACM STOC, pages 131–142. Providence, RI, May 1985.

    Google Scholar 

  15. Erich Kaltofen. Parallel algebraic algorithm design. Technical report, Department of Computer Science, Rensselaer Polytechnic Institute, November 1989.

    Google Scholar 

  16. Wolfgang W. Küchlin, David Lutz, and Nicholas J. Nevin. Integer multiplication in PARSAC-2 on stock microprocessors. In AAECC-9: Ninth Int. Symp. on Applied Algebra, Algebraic Algorithms, and Error-Correcting Codes, LNCS, New Orleans, LA, October 1991. Springer-Verlag. (To appear).

    Google Scholar 

  17. Wolfgang W. Küchlin and Nicholas J. Nevin. On multi-threaded list-processing and garbage collection. Technical Report OSU-CISRC-3/91-TR11, Computer and Information Science Research Center, The Ohio State University, Columbus, OH 43210-1277, March 1991.

    Google Scholar 

  18. Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, New Jersey, 2nd edition, 1988. (Based on the Draft ANSI C.).

    Google Scholar 

  19. L. V. Kalé and Wennie Shu. The Chare-Kernel language for parallel programming: A perspective. Report UIUCDCS-R-88-1451, Department of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL, August 1988.

    Google Scholar 

  20. Wolfgang W. Küchlin. PARSAC-2: A parallel SAC-2 based on threads. In AAECC-8: Eighths Int. Symp. on Applied Algebra, Algebraic Algorithms, and Error-Correcting Codes, volume 508 of LNCS, Tokyo, Japan, August 1990. Springer-Verlag.

    Google Scholar 

  21. Wolfgang W. Küchlin. The S-threads environment for parallel symbolic computation. In Richard Zippel, editor, Computer Algebra and Parallelism, Ithaca, NY, May 1990. To appear.

    Google Scholar 

  22. Wolfgang W. Küchlin. On the multi-threaded computation of integral polynomial greatest common divisors. In Proc. ISSAC'91: Internatl. Symp. on Symbolic and Algebraic Computation, Bonn, Germany, July 1991. ACM Press. (To appear. Also Tech. Report OSU-CISRC-1/91-TR2).

    Google Scholar 

  23. Wolfgang W. Küchlin. A space-efficient parallel garbage compaction algorithm. In Proc. Fifth ACM International Conference on Supercomputing, Cologne, Germany, June 1991. ACM Press. (To appear).

    Google Scholar 

  24. John D. Lipson. Elements of Algebra and Algebraic Computing. Benjamin/Cummings, 1981.

    Google Scholar 

  25. R. G. K. Loos. The algorithm description language ALDES (Report). ACM SIGSAM Bull., 10(1):15–39, 1976.

    Google Scholar 

  26. J. Moses and D. Yun. The EZ-GCD algorithm. In Proc. of the ACM Annual Conference, pages 159–166, Atlanta, GA, 1973.

    Google Scholar 

  27. Carl G. Ponder. Evaluation of “Performance Enhancements” in Algebraic Manipulation Systems. PhD thesis, Computer Science Division, University of California, Berkeley, CA 94720, U.S.A., August 1988.

    Google Scholar 

  28. Carl G. Ponder. Parallel processors and systems for algebraic manipulation: Current work. ACM SIGSAM Bull., 22(3):15–21, July 1988.

    Google Scholar 

  29. Carl G. Ponder. Parallelism and algorithms for algebraic manipulation: Current work. ACM SIGSAM Bull., 22(3):7–14, July 1988.

    Google Scholar 

  30. Carl G. Ponder. Evaluation of “performance enhancements” in algebraic manipulation systems. In Della Dora and Fitch [DDF89], pages 51–73. (Proc. CAP'88, Grenoble, France, June 1988).

    Google Scholar 

  31. Jean-Louis Roch. L'Architecture du Systeme PAC et son Arithmetique Rationnelle. PhD thesis, Institut National Polytechnique de Grenoble, Grenoble, France, December 1989.

    Google Scholar 

  32. Steffen Seitz. Verteiltes Rechnen in SAC-2. PhD thesis, Universität Tübingen, 1990.

    Google Scholar 

  33. Paul S. Wang. The EEZ-GCD algorithm. SIGSAM Bulletin, 14(2):50–60, 1980.

    Article  Google Scholar 

  34. Stephen M. Watt. Bounded Parallelism in Computer Algebra. PhD thesis, University of Waterloo, Waterloo, Canada, 1986. Also Technical Report CS-86-12.

    Google Scholar 

  35. Ken Weber. A heuristic parallel algorithm to compute univariate polynomial GCD's. Preprint, February 1991.

    Google Scholar 

  36. Richard Zippel. Probabilistic algorithms for sparse polynomials. In Edward W. Ng, editor, Symbolic and Algebraic Computation, volume 72 of LNCS, pages 216–226, Marseille, France, June 1979. Springer-Verlag. (Proc. EUROSAM'79).

    Google Scholar 

  37. Richard Zippel. Newton's iteration and the sparse Hensel algorithm. In Paul Wang, editor, Proc. SYMSAC'81, pages 68–72, 1981.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hans P. Zima

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Küchlin, W. (1992). On the multi-threaded computation of modular polynomial greatest common divisors. In: Zima, H.P. (eds) Parallel Computation. ACPC 1991. Lecture Notes in Computer Science, vol 591. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55437-8_93

Download citation

  • DOI: https://doi.org/10.1007/3-540-55437-8_93

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55437-0

  • Online ISBN: 978-3-540-47073-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics