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

  • A. A. Chien
  • U. S. Reddy
  • J. Plevyak
  • J. Dolby
Parallelism and Distribution
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1049)


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.


concurrent languages parallelism object-parallel programming memory consistency concurrent object-oriented programming 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    G. Agha. Concurrent object-oriented programming. Communications of the Association for Computing Machinery, 33(9):125–41, September 1990.Google Scholar
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 16.
    Andrew A. Chien. Application studies for concurrent aggregates. Technical report, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, Cambridge, Massachusetts, 1990.Google Scholar
  17. 17.
    Andrew A. Chien. Concurrent Aggregates: Supporting Modularity in Massively-Parallel Programs. MIT Press, Cambridge, MA, 1993.Google Scholar
  18. 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. 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. 21.
    J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Mateo, California, 1993.Google Scholar
  21. 22.
    A. Grimshaw. Easy-to-use object-oriented parallel processing with Mentat. IEEE Computer, 5(26):39–51, May 1993.Google Scholar
  22. 23.
    Concurrent Systems Architecture Group. The ICC++ reference manual. Concurrent Systems Architecture Group Memo, June 1995.Google Scholar
  23. 24.
    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. 25.
    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. 26.
    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. 27.
    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. 28.
    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. 29.
    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. 30.
    Barbara Liskov. Data abstraction and hierarchy. ACM SIGPLAN Notices, 23(5):17–34, May 1988.Google Scholar
  30. 31.
    Barbara Liskov. Distributed programming in argus. Communications of the ACM, 31(3):300–313, March 1988.Google Scholar
  31. 32.
    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. 33.
    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. 34.
    N. Wirth and M. Reiser. Programming in Oberon — Steps beyond Pascal and Modula. Addison Wesley, 1992.Google Scholar
  34. 35.
    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. 36.
    John Plevyak and Andrew Chien. Efficient cloning to eliminate dynamic dispatch in object-oriented languages. Submitted for Publication, 1995.Google Scholar
  36. 37.
    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. 38.
    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. 39.
    G. Sabot. The Paralation Model. MIT Press, Cambridge, Massachusetts, 1988.Google Scholar
  39. 40.
    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. 41.
    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. 42.
    Thinking Machines Corporation, 245 First Street, Cambridge, MA 02154-1264. The Connection Machine CM-5 Technical Summary, October 1991.Google Scholar
  42. 43.
    Akinori Yonezawa, editor. ABCL: An Object-Oriented Concurrent System. MIT Press, 1990. ISBN 0-262-24029-7.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • A. A. Chien
    • 1
  • U. S. Reddy
    • 1
  • J. Plevyak
    • 1
  • J. Dolby
    • 1
  1. 1.Department of Computer ScienceUrbana

Personalised recommendations