Skip to main content

ICC++ - A C++ dialect for high performance parallel computing

  • Parallelism and Distribution
  • Conference paper
  • First Online:
Book cover Object Technologies for Advanced Software (ISOTAS 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1049))

Included in the following conference series:

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Agha. Concurrent object-oriented programming. Communications of the Association for Computing Machinery, 33(9):125–41, September 1990.

    Google Scholar 

  2. Pierre America. A parallel object-oriented language with inheritance and subtyping. In Proceedings of ECOOP/OOPSLA '90, pages 161–8, 1990.

    Google Scholar 

  3. 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).

    Google Scholar 

  4. Henri E. Bal. The Shared Data-Object Model as a Paradigm for Programming Distributed Systems. PhD thesis, Vrije Universiteit Te Amsterdam, Amsterdam, 1989.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. S. Chatterjee. Compiling nested data parallel programs for shared memory multiprocessors. ACM Transactions of Programming Languages and Systems, 15(3), 1993.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. Andrew Chien and Uday Reddy. ICC++-language definition. Concurrent Systems Architecture Group Memo, Also available from http://www-csag.cs.uiuc.edu/, February 1995.

    Google Scholar 

  16. Andrew A. Chien. Application studies for concurrent aggregates. Technical report, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, Cambridge, Massachusetts, 1990.

    Google Scholar 

  17. Andrew A. Chien. Concurrent Aggregates: Supporting Modularity in Massively-Parallel Programs. MIT Press, Cambridge, MA, 1993.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Mateo, California, 1993.

    Google Scholar 

  21. A. Grimshaw. Easy-to-use object-oriented parallel processing with Mentat. IEEE Computer, 5(26):39–51, May 1993.

    Google Scholar 

  22. Concurrent Systems Architecture Group. The ICC++ reference manual. Concurrent Systems Architecture Group Memo, June 1995.

    Google Scholar 

  23. L. V. Kale and Sanjeev Krishnan. CHARM++: A portable concurrent object oriented system based on C++. In Proceedings of OOPSLA '93, 1993.

    Google Scholar 

  24. Vijay Karamcheti and Andrew Chien. Concert — efficient runtime support for concurrent object-oriented programming languages on stock hardware. In Proceedings of Supercomputing'93, 1993.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. 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.

    Google Scholar 

  28. J. Lee and D. Gannon. Object oriented parallel programming. In Proceedings of the ACM/IEEE Conference on Supercomputing. IEEE Computer Society Press, 1991.

    Google Scholar 

  29. Barbara Liskov. Data abstraction and hierarchy. ACM SIGPLAN Notices, 23(5):17–34, May 1988.

    Google Scholar 

  30. Barbara Liskov. Distributed programming in argus. Communications of the ACM, 31(3):300–313, March 1988.

    Google Scholar 

  31. S. Matsuoka and A. Yonezawa. Research Directions in Object-Based Concurrency, chapter “Analysis of Inheritance Anomaly in Object-Oriented Concurrent Languages”. MIT Press, 1993.

    Google Scholar 

  32. 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.

    Google Scholar 

  33. N. Wirth and M. Reiser. Programming in Oberon — Steps beyond Pascal and Modula. Addison Wesley, 1992.

    Google Scholar 

  34. T. Ng, X. Zhang, V. Karamcheti, and A. A. Chien. Parallel macromolecular dynamics on the Concert System. In Submitted for publication, 1995.

    Google Scholar 

  35. John Plevyak and Andrew Chien. Efficient cloning to eliminate dynamic dispatch in object-oriented languages. Submitted for Publication, 1995.

    Google Scholar 

  36. 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.

    Google Scholar 

  37. 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.

    Google Scholar 

  38. G. Sabot. The Paralation Model. MIT Press, Cambridge, Massachusetts, 1988.

    Google Scholar 

  39. 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.

    Google Scholar 

  40. 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.

    Google Scholar 

  41. Thinking Machines Corporation, 245 First Street, Cambridge, MA 02154-1264. The Connection Machine CM-5 Technical Summary, October 1991.

    Google Scholar 

  42. Akinori Yonezawa, editor. ABCL: An Object-Oriented Concurrent System. MIT Press, 1990. ISBN 0-262-24029-7.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Kokichi Futatsugi Satoshi Matsuoka

Rights and permissions

Reprints 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

Publish with us

Policies and ethics