Chapter B1
Installation

B1.1 Required Software

In general, Cactus requires the following set of software to function in single processor mode. Please refer to the architecture section B1.2 for architecture specific items.

Perl5.0

Perl is used extensively during the Cactus thorn configuration phase. Perl is available for nearly all operating systems known to man, and can be obtained at http://www.perl.org.

GNU make

The make process works with the GNU make utility (referred to as gmake henceforth). While other make utilities may also work, this is not guaranteed. Gmake can be obtained from your favorite GNU site, or from http://www.gnu.org.

C

C compiler. For example, the GNU compiler. This is available for most supported platforms. Platform specific compilers should also work.

CPP

C Preprocessor. For example, the GNU cpp. These are normally provided on most platforms, and many C compilers have an option to just run as a preprocessor.

SVN

Subversion is not needed to run/compile Cactus, but you are strongly encouraged to install this software to take advantage of the update procedures. It can be downloaded from http://subversion.apache.org.

To use Cactus, with the default driver1 (CactusPUGH/PUGH) on multiple processors you also need:

MPI

The Message Passing Interface, which provides inter-processor communication. Supercomputing sites often supply a native MPI implementation that is very likely to be compatible with Cactus. Otherwise, there are various freely available ones available, e.g. the MPICH version of MPI is available for various architectures and operating systems at http://www-unix.mcs.anl.gov/mpi/.

If you are using any thorns containing routines written in C++ you also need

C++

C++ compiler. For example, the GNU compiler. This is available for most supported platforms. Platform specific compilers should also work. Note that if a C++ compiler is available, then the main() routine in the flesh is compiled with C++ to allow static class initialisations.

If you are using any thorns containing routines written in CUDA (Compute Unified Device Architecture), a parallel computing architecture developed by NVIDIA, you also need

CUCC

CUDA compiler. For example, the NVIDIA C compiler. In many cases, you can compile your C and C++ code with a CUDA compiler without encountering any problems, but you are advised to use a CUDA compiler exclusively for CUDA code.

If you are using any thorns containing routines written in Fortran you also need

F90/F77

For routines written in Fortran 77, either a Fortran 90 or a Fortran 77 compiler can be used. For routines written in Fortran 90, a Fortran 90 compiler is obviously required. There is a very limited set of free Fortran 90 compilers available for the different architectures.

While not required for compiling or running Cactus, for thorn development it is useful to install

ctags/etags

These programs enable you browse through the calling structure of a program by help of a function call database. Navigating the flesh and arrangements becomes very easy. Emacs and vi both support this method. See D8 for a short guide to tags.

B1.2 Supported Architectures

Cactus runs on many machines, under a large number of operating systems. Here, we list the machines we have compiled and verified Cactus on, including some architecture specific notes. A complete list of architectures supported by Cactus, along with more notes, can be found at

http://www.cactuscode.org/Documentation/Architectures.html.

SGI

32 or 64 bit running Irix.

Cray T3E

Compaq Alpha

Compaq operating system and Linux. Single processor mode and MPI supported. The Alphas need to have the GNU C/C++ compilers installed.

IA32

running Linux, OpenBSD, FreeBSD, or Windows 2000/NT. Single processor mode and MPI (MPICH and LAM) supported.
On Windows, Cactus compiles with Cygwin. MPI (WMPI, HPVM, and MPIPro) supported. Please read doc/README.NT for details.

IA64

running Linux.

Macintosh PowerPC

(MacOS X and Linux PPC)

IBM SP2,SP3,SP4

32 or 64 bit running AIX.

Hitachi SR8000-F1

Sun Solaris

Fujitsu

NEC SX-5, SX-6

The following machines are only partially supported,

HP Exemplar

B1.2.1 Note

Disk space may be a problem on supercomputers where home directories are small. A workaround is to first create a configs directory on scratch space, say scratch/cactus_configs/ (where scratch/ is your scratch directory), and then either

or

1For help with unfamiliar terms, please consult the glossary, Appendix D1.