Table of Contents
The primary tools you'll be using are the Ccaffeine CCA framework and the Babel language interoperability tool. This section provides brief instructions on how to download and install a distribution of these tools (named, creatively enough, “cca-tools”) that has been tested for compatibility with the tutorial code.
These tools are still under development as we extend their capabilities. Consequently, it is possible to find numerous releases and snapshots of the individual tools, any given combination of which may not have been tested for compatibility. Don't use the individual tool distributions unless you've got a particular reason, usually based on direct conversations with their developers. The latest version of the “cca-tools” package is the recommended distribution for routine use and will provide you with a matched set of tools that will work together properly.
We strongly recommend using a Linux platform to work through
these exercises, since this is currently the most extensively
tested and most easily supported platform for the CCA tools. If
this is not possible, or you have a specific need to use another
platform while working through these exercises, please contact
The requirements to build the CCA tools on Linux platforms are listed below. Requirements for other platforms will vary somewhat.
gcc >= 3.2
Java Software Development Kit >= 1.4. The java and javac commands must be in your execution path.
A connection to the internet. (A network connection is required both to download the code cca-tools package and during the build process.)
Python >= 2.3 built with --enable-shared
(on platforms that support shared libraries), and Numerical
Python (NumPy). If you have multiple versions of Python
installed and prefer to have a version in your execution path
that does not meet the criteria above,
you should set the
PYTHON environment variable
to point to a suitable version for the CCA tools prior to
configuring them. You can check the python version with
Additional Optional Software. There are also a number of other packages which are not required in order to build the CCA tools, but can be used if present (and may be required in order to obtain certain functionality). If you want to use them, they should be installed before you begin to install the CCA tools.
MPI: recent versions of MPICH are known to work. At present, the automatic configuration tools do not handle other MPI implementations, and Ccaffeine has not yet been extensively tested against other implementations.
At present, there are no exercises that require MPI.
Fortran 90: A variety of Fortran 90 compilers are supported. Because Babel needs to know about the format of the array descriptors used internally by the compiler, the CCA tools will have to be configured with both the path to the compiler and information about which compiler it is. Here is the list of currently supported compilers and the associated labels recognized by the CCA tools configuration script.
|Compiler||CCA Tools “VENDOR” Label|
|HP Compaq Fortran||Alpha|
|IBM XL Fortran||IBMXL|
|SGI MIPS Pro||MIPSpro|
You should have the compiler in your execution path, and any
LD_LIBRARY_PATH. These are required to
properly configure the CCA tools package.
GNU autotools >= 2.59; >= 2.60 recommended. These are not
required by the CCA tools themselves, but would be needed if
your development activities require adding to the basic
configure script generated by bocca.
The latest version of the CCA Tools package can be found at
a filename of the form
Untar the cca-tools tar ball some place that is convenient to build and follow the instructions in the README to build it.
The CCA tools build procedure has been tested on a variety of
systems with a range of different configuration options, and it
works the majority of the time. However it is possible your
platform or configuration requirements will confuse it, and it
will not build properly for you. If this happens, please contact
<email@example.com> with the output of your attempt to
configure and build the package, and any pertinent information
about your system. We want to help you get a working CCA
environment and improve the packaging of the tools for future