Abstract
We present a new concurrency abstraction and implementation technique for high-level (symbolic) parallel languages that allows significant programmer control over load-balancing and mapping of fine-grained lightweight threads. Central to our proposal is the notion of a virtual topology. A virtual topology defines a relation over a collection of virtual processors, and a mapping of those processors to a set of physical processors; processor topologies configured as trees, graphs, butterflies, and meshes are some well-known examples. A virtual topology need not have any correlation with a physical one; it is intended to capture the interconnection structure best suited for a given algorithm. We consider a virtual processor to be an abstraction that defines scheduling, migration and load-balancing policies for the threads it executes. Thus, virtual topologies are intended to provide a simple, expressive and efficient high-level framework for defining complex thread/processor mappings that abstracts low-level details of a physical interconnection.
Preview
Unable to display preview. Download preview PDF.
References
Nick Carriero and David Gelernter. Linda in Context. Communications of the ACM, 32(4):444–458, April 1989.
Marina Chen, Young-il Choo, and Jingke Li. Compiling Parallel Programs by Optimizing Performance. Journal of Supercomputing, 1(2): 171–207, 1988.
K.L Clark and S. Gregory. PARLOG: Parallel Programming in Logic. ACM Transactions on Programming Languages and Systems, 8(1): 1–49, 1986.
William Clinger and Jonathan Rees, editors. Revised4 Report on the Algorithmic Language Scheme. ACM Lisp Pointers, 4(3), July 1991.
David Saks Greenberg. Full Utilization of Communication Resources. PhD thesis, Yale University, June 1991.
Robert Halstead. Multilisp: A Language for Concurrent Symbolic Computation. Transactions on Programming Languages and Systems, 7(4):501–538, October 1985.
Paul Hudak. Para-functional Programming in Haskell. In Boleslaw K. Szymanski, editor, Parallel Functional Languages and Compilers. ACM Press, 1991.
Paul Hudak et.al. Report on the Functional Programming Language Haskell, Version 1.2. ACM SIGPLAN Notices, May 1992.
Takayasu Ito and Robert Halstead, Jr., editors. Parallel Lisp: Languages and Systems. Springer-Verlag, 1989. LNCS number 41.
Suresh Jagannathan and James Philbin. A Customizable Substrate for Concurrent Languages. In ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, June 1992.
David Kranz, Robert Halstead, and Eric Mohr. Mul-T: A High Performance Parallel Lisp. In Proceedings of the ACM Symposium on Programming Language Design and Implementation, pages 81–91, June 1989.
F. Thomas Leighton. Introduction to Parallel Algorithms and Architectures. Morgan-Kaufmann, 1992.
Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. MIT Press, 1990.
Rick Mohr, David Kranz, and Robert Halstead. Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, June 1990.
J. Gregory Morrisett and Andrew Tolmach. Procs and Locks: A Portable Multiprocessing Platform for Standard ML of New Jersey. In Fourth ACM Symposium on Principles and Practice of Parallel Programming, pages 198–207, 1993.
James Philbin. An Operating System for Modern Languages. PhD thesis, Dept. of Computer Science, Yale University, 1993.
John Reppy. CML: A Higher-Order Concurrent Language. In Proceedings of the SIGPLAN'91 Conference on Programming Language Design and Implementation, pages 293–306, June 1991.
Anne Rogers and Keshave Pingali. Process Decomposition Through Locality of Reference. In S1GPLAN'89 Conference on Programming Language Design and Implementation, pages 69–80, 1989.
Vijay Saraswat and Martin Rinard. Concurrent Constraint Programming. In Proceedings of the 17th ACM Symposium on Principles of Programming Languages, pages 232–246, 1990.
Karsten Schwan and Win Bo. Topologies — Distributed Objects on Multicomputers. ACM Transactions on Computer Systems, 8(2):111–157, May 1990.
Ehud Shapiro, editor. Concurrent Prolog Collected Papers. MIT Press, Cambridge, Mass., 1987.
V.S. Sunderam. PVM: A Framework for Parallel Distributed Computing. Concurrency: Practice & Experience, 2(4), 1990.
M. Vandevoorde and E. Roberts. WorkCrews: An Abstraction for Controlling Parallelism. International Journal of Parallel Programming, 17(4):347–366, August 1988.
Michael Wolfe. Optimizing Supercompilers for Super Computers. MIT Press, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Philbin, J., Jagannathan, S., Mirani, R. (1996). Virtual topologies: A new concurrency abstraction for high-level parallel languages. In: Huang, CH., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1995. Lecture Notes in Computer Science, vol 1033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014217
Download citation
DOI: https://doi.org/10.1007/BFb0014217
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60765-6
Online ISBN: 978-3-540-49446-1
eBook Packages: Springer Book Archive