Abstract
ICC++ is a new concurrent C++ dialect which supports a single source code for sequential and parallel program versions, the construction of concurrent data abstractions, convenient expression of irregular and fine-grained concurrency, and high performance implementations. ICC++ programs are annotated with potential concurrency, facilitating both sharing source with sequential programs and automatic grain size tuning for efficient execution. Concurrency control is at the object level; each object ensures the consistency of its own state. This consistency can be extended over larger data abstractions. Finally, ICC++ integrates arrays into the object system and the concurrency model. In short, ICC++ addresses concurrency and its relation to abstractions — whether they are implemented by single objects, several objects, or object collections. The design of the language, its rationale, and current status are all described.
The research described in this paper was supported in part by NSF grants CCR-9209336 and MIP-92-23732, ONR grants N00014-92-J-1961 and N00014-93-1-1086 and NASA grant NAG 1-613. Andrew Chien is supported in part by NSF Young Investigator Award CCR-94-57809. Uday S. Reddy is supported by the National Science Foundation, grant NSF-CCR-93-03043
Preview
Unable to display preview. Download preview PDF.
References
G. Agha. Concurrent object-oriented programming. Communications of the Association for Computing Machinery, 33(9):125–41, September 1990.
Pierre America. A parallel object-oriented language with inheritance and subtyping. In Proceedings of ECOOP/OOPSLA '90, pages 161–8, 1990.
Birger Andersen. A genereal, grain-size adaptable, object-oriented programming language for distributed computers. Technical report, Department of Computer Science, University of Copenhagen, Copenhagen, Denmark, June 1992. Ph.D. thesis (partial).
Henri E. Bal. The Shared Data-Object Model as a Paradigm for Programming Distributed Systems. PhD thesis, Vrije Universiteit Te Amsterdam, Amsterdam, 1989.
Adam Beguelin, Erik Seligman, and Micheal Starkey. Dome: Distributed object migration environment. Technical Report CMU-CS-94-153, School of Computer Science, Carnegie-Mellon University, May 1994.
B.N. Bershad, E.D. Lazowska, and H.M. Levy. Presto: A system for object-oriented parallel programming. Software — Practice and Experience, 18(8):713–732, August 1988.
M. Carson and J. Hermans. Molecular Dynamics and Protein Structure, chapter The Molecular Dynamics Workshop Laboratory, pages 165–6. University of North Carolina, Chapel Hill, 1985.
Rohit Chandra, Anoop Gupta, and John L. Hennessy. Data locality and load balancing in COOL. In Proceedings of the Fourth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 1993.
K. Mani Chandy and Carl Kesselman. Compositional C++: Compositional parallel programming. In Proceedings of the Fifth Workshop on Compilers and Languages for Parallel Computing, New Haven, Connecticut, 1992. YALEU/DCS/RR-915, Springer-Verlag Lecture Notes in Computer Science, 1993.
S. Chatterjee. Compiling nested data parallel programs for shared memory multiprocessors. ACM Transactions of Programming Languages and Systems, 15(3), 1993.
A. A. Chien and W. J. Dally. Concurrent Aggregates (CA). In Proceedings of Second Symposium on Principles and Practice of Parallel Programming. ACM, March 1990.
A. A. Chien, W. Feng, V. Karamcheti, and J. Plevyak. Techniques for efficient execution of fine-grained concurrent programs. In Proceedings of the Fifth Workshop on Compilers and Languages for Parallel Computing, pages 103–13, New Haven, Connecticut, 1992. YALEU/DCS/RR-915, Springer-Verlag Lecture Notes in Computer Science, 1993.
A. A. Chien, M. Straka, J. Dolby, V. Karamcheti, J. Plevyak, and X. Zhang. A case study in irregular parallel programming. In DIMACS Workshop on Specification of Parallel Algorithms, May 1994. Also available as Springer-Verlag LNCS.
Andrew Chien, Vijay Karamcheti, and John Plevyak. The Concert system — compiler and runtime support for efficient fine-grained concurrent object-oriented programs. Technical Report UIUCDCS-R-93-1815, Department of Computer Science, University of Illinois, Urbana, Illinois, June 1993.
Andrew Chien and Uday Reddy. ICC++-language definition. Concurrent Systems Architecture Group Memo, Also available from http://www-csag.cs.uiuc.edu/, February 1995.
Andrew A. Chien. Application studies for concurrent aggregates. Technical report, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, Cambridge, Massachusetts, 1990.
Andrew A. Chien. Concurrent Aggregates: Supporting Modularity in Massively-Parallel Programs. MIT Press, Cambridge, MA, 1993.
Andrew A. Chien and William J. Dally. Experience with concurrent aggregates (ca): Implementation and programming. In Proceedings of the Fifth Distributed Memory Computers Conference, Charleston, South Carolina, April 8–12 1990. SIAM.
Andrew A. Chien and Julian Dolby. The Illinois Concert system: A problem-solving environment for irregular applications. In Proceedings of DAGS'94, The Symposium on Parallel Computation and Problem Solving Environments., 1994. 20. Cray Research, Inc., Eagan, Minnesota 55121. CRAY T3D Software Overview Technical Note, 1992.
J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Mateo, California, 1993.
A. Grimshaw. Easy-to-use object-oriented parallel processing with Mentat. IEEE Computer, 5(26):39–51, May 1993.
Concurrent Systems Architecture Group. The ICC++ reference manual. Concurrent Systems Architecture Group Memo, June 1995.
L. V. Kale and Sanjeev Krishnan. CHARM++: A portable concurrent object oriented system based on C++. In Proceedings of OOPSLA '93, 1993.
Vijay Karamcheti and Andrew Chien. Concert — efficient runtime support for concurrent object-oriented programming languages on stock hardware. In Proceedings of Supercomputing'93, 1993.
Woo Young Kim and Gul Agha. Efficient support for location transparency in concurrent object-oriented programming languages. In Proceedings of the Supercomputing '95 Conference, San Diego, CA, December 1995.
H. Konaka. An overview of ocore: A massively parallel object-based language. Technical Report TR-P-93-002, Tsukuba Research Center, Real World Computing Partnership, Tsukuba Mitsui Building 16F, 1-6-1 Takezono, Tsukuba-shi, Ibaraki 305, JAPAN, 1993.
James Larus. C**: a large-grain, object-oriented, data parallel programming language. In Proceedings of the Fifth Workshop for Languages and Compilers for Parallel Machines, pages 326–341. Springer-Verlag, August 1992.
J. Lee and D. Gannon. Object oriented parallel programming. In Proceedings of the ACM/IEEE Conference on Supercomputing. IEEE Computer Society Press, 1991.
Barbara Liskov. Data abstraction and hierarchy. ACM SIGPLAN Notices, 23(5):17–34, May 1988.
Barbara Liskov. Distributed programming in argus. Communications of the ACM, 31(3):300–313, March 1988.
S. Matsuoka and A. Yonezawa. Research Directions in Object-Based Concurrency, chapter “Analysis of Inheritance Anomaly in Object-Oriented Concurrent Languages”. MIT Press, 1993.
Stephan Murer, Jerome A. Feldman, Chu-Cheow Lim, and Martina-Maria Seidel. pSather: Layered extensions to an object-oriented language for efficient parallel computation. Technical Report TR-93-028, International Computer Science Institute, Berkeley, CA, June 1993 November 1993.
N. Wirth and M. Reiser. Programming in Oberon — Steps beyond Pascal and Modula. Addison Wesley, 1992.
T. Ng, X. Zhang, V. Karamcheti, and A. A. Chien. Parallel macromolecular dynamics on the Concert System. In Submitted for publication, 1995.
John Plevyak and Andrew Chien. Efficient cloning to eliminate dynamic dispatch in object-oriented languages. Submitted for Publication, 1995.
John Plevyak and Andrew A. Chien. Precise concrete type inference of object-oriented programs. In Proceedings of OOPSLA'94, Object-Oriented Programming Systems, Languages and Architectures, pages 324–340, 1994.
John Plevyak, Xingbin Zhang, and Andrew A. Chien. Obtaining sequential efficiency in concurrent object-oriented programs. In Proceedings of the ACM Symposium on the Principles of Programming Languages, pages 311–321, January 1995.
G. Sabot. The Paralation Model. MIT Press, Cambridge, Massachusetts, 1988.
K. Smith and A. Chatterjee. A C++ environment for distributed application execution. Technical Report ACT-ESP-015-91, Microelectronics and Computer Technology Corporation (MCC), November 1990.
K. Taura, S. Matsuoka, and A. Yonezawa. An efficient implementation scheme of concurrent object-oriented languages on stock multicomputers. In Proceedings of the Fifth ACM SIGPLAN Symposium on the Principles and Practice of Parallel Programming, 1993.
Thinking Machines Corporation, 245 First Street, Cambridge, MA 02154-1264. The Connection Machine CM-5 Technical Summary, October 1991.
Akinori Yonezawa, editor. ABCL: An Object-Oriented Concurrent System. MIT Press, 1990. ISBN 0-262-24029-7.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chien, A.A., Reddy, U.S., Plevyak, J., Dolby, J. (1996). ICC++ - A C++ dialect for high performance parallel computing. In: Futatsugi, K., Matsuoka, S. (eds) Object Technologies for Advanced Software. ISOTAS 1996. Lecture Notes in Computer Science, vol 1049. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60954-7_45
Download citation
DOI: https://doi.org/10.1007/3-540-60954-7_45
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60954-4
Online ISBN: 978-3-540-49747-9
eBook Packages: Springer Book Archive