|Volume 7, Issue 1 -
Volume 6, Issue 3
Volume 6, Issue 2
Volume 6, Issue 1
5, Issue 4
5, Issue 3
5, Issue 2
5, Issue 1
4, Issue 4
4, Issue 3
4, Issue 2
4, Issue 1
3, Issue 4
3, Issue 3
3, Issue 2
3, Issue 1
2, Issue 4
2, Issue 3
2, Issue 2
2, Issue 1
Volume 1, Issue 4
1, Issue 3
1, Issue 2
1, Issue 1
CC++ MEETING INDUSTRY AND ACADEMIC USER NEEDS
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++
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