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

  • Wolfgang Kuechlin
Submitted Contributions Algorithms And Designs For Symbolic And Algebraic Computation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 508)


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.


Garbage Collection Page Size Input Length List Memory Shared Memory Multiprocessor 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [ABG+86]
    [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. [ACG86]
    S. Ahuja, Nicholas Carriero, and David Gelernter. Linda and friends. Computer, 19(8):26–34, August 1986.Google Scholar
  3. [ALL88]
    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. [BB88]
    Gilles Brassard and Paul Bratley. Algorithmics: Theory and Practice. Prentice-Hall, Englewood Cliffs, New Jersey, 1988.Google Scholar
  5. [BCL82]
    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. [CD87]
    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. [CG89]
    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. [CJK90]
    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. [CL]
    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. [CMW82]
    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. [DDF89]
    J. Della Dora and J. Fitch, editors. Computer Algebra and Parallelism. Computational Mathematics and Applications. Academic Press, London, 1989.Google Scholar
  12. [Doe87]
    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. [Enc88]
    Encore Computer Corp. Encore Parallel Threads Manual, January 1988.Google Scholar
  14. [Gon89]
    Gaston H. Gonnet, editor. Proc. International Symposium on Symbolic and Algebraic Computation, Portland, Oregon, July 1989. ACM, ACM Press.Google Scholar
  15. [KS88]
    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. [Kue90]
    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. [Loo76]
    R. G. K. Loos. The algorithm description language ALDES (Report). ACM SIGSAM Bull., 10(1):15–39, 1976.Google Scholar
  18. [MW88]
    David Maier and David S. Warren. Computing with Logic: Logic Programming with Prolog. Benjamin Cummings, Reading, MA, 1988.Google Scholar
  19. [Pon88a]
    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. [Pon88b]
    Carl G. Ponder. Parallel processors and systems for algebraic manipulation: Current work. ACM SIGSAM Bull., 22(3):15–21, July 1988.Google Scholar
  21. [Pon88c]
    Carl G. Ponder. Parallelism and algorithms for algebraic manipulation: Current work. ACM SIGSAM Bull., 22(3):7–14, July 1988.Google Scholar
  22. [Roc89]
    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. [Sam89]
    Ioannis Samiotakis. A thread library for a non-uniform memory access multiprocessor. Master's thesis, The Ohio State University, 1989.Google Scholar
  24. [Sei89]
    Steffen Seitz. Parallel algorithm development. In Della Dora and Fitch [DDF89], pages 223–232.Google Scholar
  25. [SLA89]
    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. [Vis88]
    Prasad Vishnubhotla. Synchronization and scheduling in ALPS objects. In Eighth International Conference on Distributed Computing Systems, San Jose, CA, 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Wolfgang Kuechlin
    • 1
  1. 1.Department of Computer and Information ScienceThe Ohio State UniversityColumbusU.S.A.

Personalised recommendations