Abstract
A compositional parallel program is a program constructed by composing component programs in parallel, where the composed program inherits properties of its components. In this paper, we describe a small extension of C++ called Compositional C++ or CC++ which is an object-oriented notation that supports compositional parallel programming. CC++ integrates different paradigms of parallel programming: data-parallel, task-parallel and object-parallel paradigms; imperative and declarative programming; shared memory and message-based programs. CC++ is designed to be transportable across a range of MIMD architectures.
Keywords
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.
Preview
Unable to display preview. Download preview PDF.
References
William B. Ackerman. Data flow languages. Computer, 15(2):15–25, February 1982.
Gul Agha. ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.
Arvind and R.E. Thomas. I-Structures: An efficient data structure for functional languages. Technical Report TM-178, MIT, 1980.
William C. Athas and C.L. Seitz. Multicomputer: Message-passing concurrent computers. IEEE Computer, August 1988.
Brian Bershad, Edward Lazowska, and Henry Levy. Presto: A system of objectoriented parallel programming. Software: Practice and Experience, 18(8):713–732, August 1988.
Ulla Binau. Real good stuff in CC++. Technical Report Caltech-CS-TR-92-11, California Institute of Technology, 1992.
Grady Booch. Object Oriented Design with Applications. The Benjamin/Cummings Publishing Company, Inc, 1991.
K. Mani Chandy and Carl Kesselman. The CC++ language definition. Technical Report Caltech-CS-TR-92-02, California Institute of Technology, 1992.
K. Mani Chandy and Carl Kesselman. The derivation of compositional programs. In Proceedings of the 1992 Joint International Conference and Symposium on Logic Programming. MIT Press, 1992.
K. Mani Chandy and Carl Kesselman. Mutual exclusion in a token ring in CC++: Program and proof. Technical Report Caltech-CS-TR-92-01, California Institute of Technology, 1992.
K. Mani Chandy and Jayadev Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988.
K. Mani Chandy and Stephen Taylor. An Introduction to Parallel Programming. Bartlett and Jones, 1991.
Margaret A. Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1990.
Ian Foster. Information hiding in parallel programs. Technical Report MCS-P290-0292, Argonne National Laboratory, 1992.
Ian Foster and Stephen Taylor. STRAND: New Concepts in Parallel Programming. Prentice Hall, 1989.
Andrew S. Grimshaw. An introduction to parallel object-oriented programming with Mentat. Computer Science Report TR-91-07, University of Virginia, 1991.
Carl E. Hewitt and Henry Baker. Actors and continuous functionals. In Proceedings IFIP Working Conference on Formal Description of Programming Concepts, pages 367–387, August 1977.
David Kuck, Daniel Gajski, et al. A second opinion on data flow machines and languages. Computer, 15(2):58–69, February 1982.
Max Lemke and Daniel Quinlan. P++, a C++ virtual shared grids based programming environment for architecture-independent development of structured grid applications. Arbeitspapiere der GMD 611, Gesellschaft Für Mathematik und Datenverarbeitung MBH, February 1992.
J. McGraw et al. SISAL: Streams and iteration in a single assignment language, language reference manual, version 1.2. Technical Report M-146, LLNL, March 1985.
Jayadev Misra. Personal Communication, 1992.
S. Owicki and D. Gries. An axiomatic proof technique for parallel programs I. Acta Informatica, 6(1):319–340, 1976.
Amir Pnueli. Personal Communication, 1992.
Bjarne Stroustrup. The C++ Programming Language. Addison Wesley, second edition edition, 1991.
Bjarne Stroustrup and Jonathan Shopiro. A set of C++ classes for co-routine style programming. In Proceedings of the USENIX C++ Workshop, November 1987.
Andrew A. Chien Waldemar Horwat and William J. Dally. Experience with CST: Programming and implementation. In SIGPLAN 89 Conference on Programming Language Design and Implementation, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chandy, K.M., Kesselman, C. (1993). Compositional C++: Compositional parallel programming. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1992. Lecture Notes in Computer Science, vol 757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57502-2_44
Download citation
DOI: https://doi.org/10.1007/3-540-57502-2_44
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57502-3
Online ISBN: 978-3-540-48201-7
eBook Packages: Springer Book Archive