Volume 7, Issue 1 -
Spring/Summer 1999

Volume 6, Issue 3
Fall 1998

Volume 6, Issue 2
Spring/Summer 1998

Volume 6, Issue 1
Winter 1998

Volume 5, Issue 4
Fall 1997

Volume 5, Issue 3
Summer 1997

Volume 5, Issue 2
Spring 1997

Volume 5, Issue 1
Winter 1997

Volume 4, Issue 4
Fall 1996

Volume 4, Issue 3
Summer 1996

Volume 4, Issue 2
Spring 1996

Volume 4, Issue 1
Winter 1996

Volume 3, Issue 4
Fall 1995

Volume 3, Issue 3
Summer 1995

Volume 3, Issue 2
Spring 1995

Volume 3, Issue 1
January 1995

Volume 2, Issue 4
October 1994

Volume 2, Issue 3
July 1994

Volume 2, Issue 2
April 1994

Volume 2, Issue 1
January 1994

Volume 1, Issue 4
October 1993

Volume 1, Issue 3
July 1993

Volume 1, Issue 2
April 1993

Volume 1, Issue 1
January 1993


For many CRPC projects, the real test of achievement comes not through center researchers but through the outside organizations that use their work. The use of CC++ by researchers in businesses and at universities is a good example.

CC++ is an extension of the commonly used C ++ language that supports a modular, object-oriented style of parallel programming. Based on user preference, CC++ provides an evolutionary approach to modular parallel programming by encapsulating parallelism as small extensions to a widely used language as opposed to being a separate language.

Industry researchers are putting the modular approach of CC++ to the test. Ken Zink, who works for the Austin, TX-based software vendor Scientific Engineering Software (SES), said that the company has been using CC++ as a target language for translation from a graphical, object-oriented programming system that it hopes to commercialize by 1997. "Many languages don't have the support for parallelism that CC++ does."

SES founder Jim Browne first realized the benefits of CC++ while working at the University of Texas with CRPC researcher Mani Chandy, a key member of the CC++ effort. Browne, who is still a professor in UT's computer science department, even uses CC++ in his classes.

Browne and his research associate have found CC++ useful in their academic pursuits as well. As Tim Collins explains, the group provides computational support for scientific applications, particularly those in computational and applied mathematics. Their research covers language and compiler technology for high-performance matrix computations, with a primary focus on mechanisms for capturing and exploiting the semantics of the matrices in an application. "Since we wanted to rapidly prototype the system," Collins said, "we decided to write it as a C++ package. This allowed us to take advantage of the C++ runtime system for dynamic dispatch. When it came time to write the parallel implementation of the system, it was clear that some parallel version of C++ would be the way to go. Therefore, we extended the sequential implementation in CC++."

Collins likes CC++ in coding applications for a number of reasons. "First," he said, "it is a minimal extension of C++ (an already overly complex language) that maintains the feel of C++; most of the other extended versions of C++ have changed the language too much. Second, it straightforwardly supports the SPMD model of computation, my chosen model. Many of the other C++ extensions have extremely complex models of computation. Third, the language is really usuable with the strong support provided by the CC++ researchers."

CC++ is just one of several prototype programming languages that CRPC researchers are developing to help make parallel computing truly usable.

Table of Contents