Deprecated: please see new documentation site.


Cactus is an open source problem solving environment designed for scientists and engineers. Its modular structure easily enables parallel computation across different architectures and collaborative code development between different groups. Cactus originated in the academic research community, where it was developed and used over many years by a large international collaboration of physicists and computational scientists.

http://www.cactuscode.org

Contents

Description

Cactus is a framework intended to integrate with user-written modules.In order to facilitate this while allowing the best possible performance on all machines, it is distributed as source code with an open-source licence. Download instructions are available at http://www.cactuscode.org/Download/ .

You can add many third-party Cactus components, e.g. the adaptive mesh refinement driver Carpet http://www.carpetcode.org/ , or a variety of components contributed by the Cactus community http://www.cactuscode.org/Community/ .

Getting Cactus

It is particularly easy to download Cactus using the GetCactus script.

Option 1:

1. add +cactus to ~/.soft

+cactus
@default

2. issue the resoft command

% resoft
% which GetCactus
% /usr/local/packages/Cactus/bin/GetCactus

3. run the script, GetCactus

% GetCactus
                  -------------------------
                  Installer for Cactus Code
                  -------------------------

This installer guides you through checking out the core (flesh)
and modules (thorns) of the Cactus Code from the Cactus CVS server.

For a description of the checkout procedure, and how to use this
script, type  

              ./GetCactus -help

The latest release of the Cactus Code (flesh and thorns) can also
be obtained as a tar file from our web site at

            http://www.cactuscode.org

For more information please contact cactusmaint@cactuscode.org

--------------------------------------------------------------------

Directory for Cactus installation [Cactus] : <enter>

Anonymous Flesh checkout? (y)es, n)o, h)elp) [yes] : <enter>

Checkout Flesh from
  [1] Last stable release
  [2] Standard development version (bug fixes/unstable)
Choose version: (1-2, h)elp, q)uit) [1] : 1


Verbose checkout (y)es, n)o, h)elp) [no] : yes
 
--------------------------------------------------------------------

Checking out Cactus Flesh
 (CVS repository: :pserver:cvs_anon@cvs.cactuscode.org:/cactus)
cvs checkout: Updating Cactus
U Cactus/CONTRIBUTORS
U Cactus/COPYRIGHT
#.... more output follows

At this point, a fresh copy of Cactus will be in the Cactus directory of your present working directory.

Option 2:

http://www.cactuscode.org/old/Download/CVS.html

Usage

After downloading Cactus, copy the configuration file to your Cactus directory:

cp /usr/local/packages/Cactus/share/cactus-eric-mvapich-optimise.options ~/Cactus

Create a "thorn list" as described in the Cactus manual, or copy the thorn list for the Cactus WaveToy example:

cp /usr/local/packages/Cactus/share/cactus-wavetoy.thornlist ~/Cactus

Build a Cactus configuration, including the additional components you added:

cd ~/Cactus
make wavetoy-config options=cactus-eric-mvapich-optimise.options THORNLIST=cactus-wavetoy.thornlist
make wavetoy -j2

Submit Cactus jobs through PBS. A sample script looks like this:

#! /bin/bash
#PBS -A loni_numrel1
#PBS -q checkpt
#PBS -r n
#PBS -l walltime=2:00:00
#PBS -l nodes=16:ppn=4
#PBS -V
#PBS -N wavetoy
#PBS -m abe
#PBS -o Cactus/wavetoy.out
#PBS -e Cactus/wavetoy.err

set -e                          # Abort on errors
cd Cactus

MPICHDIR=/usr/local/packages/mvapich-0.98-intel9.1
time ${MPICHDIR}/bin/mpirun -np 64 -machinefile ${PBS_NODEFILE}     \ # line cont'd
    /bin/env OMP_NUM_THREADS=1 exe/cactus_wavetoy                   \ # line cont'd
    -L 3 ${HOME}/Cactus/arrangements/CactusWave/WaveToyC/par/wavetoyc_rad.par

Modify this script for your purposes, replacing e.g. the name of your allocation. A template for a more powerful job submission script for Cactus is also available at:

cp /usr/local/packages/Cactus/share/cactus-eric-mvapich.submit ~/Cactus


References

Cactus website: http://www.cactuscode.org/

Carpet website: http://www.carpetcode.org/

User's manual: http://www.cactuscode.org/Documentation/manAndGuides

Cactus mailing lists: http://www.cactuscode.org/MailingLists/

Powered by MediaWiki