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.
References
[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.
S. Ahuja, Nicholas Carriero, and David Gelernter. Linda and friends. Computer, 19(8):26–34, August 1986.
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.
Gilles Brassard and Paul Bratley. Algorithmics: Theory and Practice. Prentice-Hall, Englewood Cliffs, New Jersey, 1988.
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.
Eric C. Cooper and Richard P. Draves. C threads. Technical report, Computer Science Department, Carnegie Mellon University, Pittsburgh, PA 15213, July 1987.
Nicholas Carriero and David Gelernter. How to write parallel programs: A guide to the perplexed. ACM Computing Surveys, 21(3):323–357, September 1989.
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.
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.
George E. Collins, Maurice Mignotte, and Franz Winkler. Arithmetic in basic algebraic domains. In Computer Algebra: Symbolic and Algebraic Computation [BCL82], pages 189–220.
J. Della Dora and J. Fitch, editors. Computer Algebra and Parallelism. Computational Mathematics and Applications. Academic Press, London, 1989.
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.
Encore Computer Corp. Encore Parallel Threads Manual, January 1988.
Gaston H. Gonnet, editor. Proc. International Symposium on Symbolic and Algebraic Computation, Portland, Oregon, July 1989. ACM, ACM Press.
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.
Wolfgang W. Kuechlin. The S-threads environment for parallel symbolic computation. To appear in: Proc. CAP-90, Ithaca, N.Y., Academic Press, June 1990.
R. G. K. Loos. The algorithm description language ALDES (Report). ACM SIGSAM Bull., 10(1):15–39, 1976.
David Maier and David S. Warren. Computing with Logic: Logic Programming with Prolog. Benjamin Cummings, Reading, MA, 1988.
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.
Carl G. Ponder. Parallel processors and systems for algebraic manipulation: Current work. ACM SIGSAM Bull., 22(3):15–21, July 1988.
Carl G. Ponder. Parallelism and algorithms for algebraic manipulation: Current work. ACM SIGSAM Bull., 22(3):7–14, July 1988.
Jean-Louis Roch. L'Architecture du System PAC et son Arithmetique Rationnelle. PhD thesis, Institut National Polytechnique de Grenoble, Grenoble, France, December 1989.
Ioannis Samiotakis. A thread library for a non-uniform memory access multiprocessor. Master's thesis, The Ohio State University, 1989.
Steffen Seitz. Parallel algorithm development. In Della Dora and Fitch [DDF89], pages 223–232.
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.
Prasad Vishnubhotla. Synchronization and scheduling in ALPS objects. In Eighth International Conference on Distributed Computing Systems, San Jose, CA, 1988.
Author information
Authors and Affiliations
Editor information
Rights 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