Skip to main content

PARSAC-2: A parallel SAC-2 based on threads

  • Submitted Contributions
  • Conference paper
  • First Online:

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

Abstract

We describe the design of PARSAC-2, a parallel version of the SAC-2 Computer Algebra system. In PARSAC-2, parallelism is based on multiple threads (lightweight processes) executing on a shared memory multiprocessor. The S-threads subsystem provides threads which are capable of parallel list processing on a shared heap. The S-threads heap memory is designed to allow concurrent list cell allocation by multiple threads with minimal synchronization overhead. S-threads may also perform parallel garbage collection, and a slightly weaker form of storage management called preventive garbage collection. We present an example of algorithm development in PARSAC by parallelizing the SAC-2 algorithm IPRODK, an integer multiplication routine based on Karatsuba's method. Using empirical data from this experiment, we demonstrate that S-threads permit a parallelization of SAC-2 down to the lowest algebraic level. Finally, we show how a key parameter of the S-threads memory design influences parallel performance.

This material is based upon work supported by the Ohio State University Office of Research and Graduate Studies under Award No. 221152, and 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. [ABG+86] Mike Accetta, Robert Baron, David Golub, Richard Rashid, Avadis Tevanian, and Michael Young. Mach: A new kernel foundation for UNIX development. Technical report, Computer Science Department, Carnegie Mellon University, Pittsburgh, PA 15213, August 1986.

    Google Scholar 

  2. S. Ahuja, Nicholas Carriero, and David Gelernter. Linda and friends. Computer, 19(8):26–34, August 1986.

    Google Scholar 

  3. Thomas Anderson, Edward Lazowska, and Henry Levy. The performance implications of thread management alternatives for shared memory multiprocessors. Technical Report TR 88-09-04, Department of Computer Science, University of Washington, September 1988.

    Google Scholar 

  4. Gilles Brassard and Paul Bratley. Algorithmics: Theory and Practice. Prentice-Hall, Englewood Cliffs, New Jersey, 1988.

    Google Scholar 

  5. Bruno Buchberger, George E. Collins, and Rüdiger Loos. Computer Algebra: Symbolic and Algebraic Computation, volume 4 of Computing Supplementum. Springer Verlag, Vienna, 2nd edition, 1982.

    Google Scholar 

  6. Eric C. Cooper and Richard P. Draves. C threads. Technical report, Computer Science Department, Carnegie Mellon University, Pittsburgh, PA 15213, July 1987.

    Google Scholar 

  7. Nicholas Carriero and David Gelernter. How to write parallel programs: A guide to the perplexed. ACM Computing Surveys, 21(3):323–357, September 1989.

    Google Scholar 

  8. George E. Collins, Jeremy Johnson, and Wolfgang Kuechlin. Parallel real root isolation using the coefficient sign variation method. To appear in: Proc. CAP-90, Ithaca, N.Y., Academic Press, June 1990.

    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: R. G. K. Loos, Universität Tübingen, Informatik, D-7400 Tübingen, W-Germany. In the U.S. available from: G. E. Collins, Ohio State University, Computer Science, Columbus, OH 43210, U.S.A.

    Google Scholar 

  10. George E. Collins, Maurice Mignotte, and Franz Winkler. Arithmetic in basic algebraic domains. In Computer Algebra: Symbolic and Algebraic Computation [BCL82], pages 189–220.

    Google Scholar 

  11. J. Della Dora and J. Fitch, editors. Computer Algebra and Parallelism. Computational Mathematics and Applications. Academic Press, London, 1989.

    Google Scholar 

  12. Thomas W. Doeppner. Threads, a system for the support of concurrent programming. Technical Report CS-87-11, Department of Computer Science, Brown University, June 1987.

    Google Scholar 

  13. Encore Computer Corp. Encore Parallel Threads Manual, January 1988.

    Google Scholar 

  14. Gaston H. Gonnet, editor. Proc. International Symposium on Symbolic and Algebraic Computation, Portland, Oregon, July 1989. ACM, ACM Press.

    Google Scholar 

  15. 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 

  16. Wolfgang W. Kuechlin. The S-threads environment for parallel symbolic computation. To appear in: Proc. CAP-90, Ithaca, N.Y., Academic Press, June 1990.

    Google Scholar 

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

    Google Scholar 

  18. David Maier and David S. Warren. Computing with Logic: Logic Programming with Prolog. Benjamin Cummings, Reading, MA, 1988.

    Google Scholar 

  19. 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 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  23. Ioannis Samiotakis. A thread library for a non-uniform memory access multiprocessor. Master's thesis, The Ohio State University, 1989.

    Google Scholar 

  24. Steffen Seitz. Parallel algorithm development. In Della Dora and Fitch [DDF89], pages 223–232.

    Google Scholar 

  25. B. D. Saunders, H. R. Lee, and S. K. Abdali. A parallel implementation of the cylindrical algebraic decomposition algorithm. In Gonet [Gon89], pages 298–307.

    Google Scholar 

  26. Prasad Vishnubhotla. Synchronization and scheduling in ALPS objects. In Eighth International Conference on Distributed Computing Systems, San Jose, CA, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Shojiro Sakata

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kuechlin, W. (1991). PARSAC-2: A parallel SAC-2 based on threads. In: Sakata, S. (eds) Applied Algebra, Algebraic Algorithms and Error-Correcting Codes. AAECC 1990. Lecture Notes in Computer Science, vol 508. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54195-0_63

Download citation

  • DOI: https://doi.org/10.1007/3-540-54195-0_63

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-47489-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics