The CCA is, at its heart, just a specification. There are several
realizations of the CCA as a software environment. In this Guide, we
use the following tools to provide that software environment, which
are currently the most widely used for high-performance (as opposed to
distributed) computing using the CCA:
Many of the commands you will type are specific to the fact that
you're using these tools as your CCA software environment. But the
components you will use and create are independent of the particular
tools being used.
- A tool for language interoperability. It allows
components written in different languages to be connected together.
The Scientific Interface Definition Language (SIDL) is defined by
Babel. For more information, see the Babel page .
Babel uses Chasm for Fortran 90 array support. For more
information, see the Chasm repository .
- A tool for generating and manipulating projects using
CCA components or other SIDL based code. Bocca is designed to
simplify the tedious and mechanical aspects of CCA and Babel. Before
bocca, this Guide was a lot longer because we had to take you step
by step through writing all of this "boilerplate" code for yourself.
- A CCA framework which emphasizes local and parallel
high-performance computing, and the most common CCA framework in
real applications. For more information, see the
Ccaffeine page .