Sie sind auf Seite 1von 2

Cactus Code

Overview
Cactus Code is a modular system designed to make it easy for physical scientists to
introduce a number of sophisticated features into in-house develop code. These features
include parallelization, access to computational grid tools, computational steering,
checkpointing and multiple input/output mechanisms and formats. Cactus provides APs
that allo! scientific researchers to incorporate these features in a consistent fashion
!ithout having to kno! the details of the implementation. Cactus also addresses
portability issues, defining its o!n primitive data types "such as floats and integers# so
that codes developed on laptops and !orkstations can be easily transferred to high-
performance computing platforms.
Cactus is designed to be ob$ect-oriented and e%tensible. The core of the code is called the
flesh, and e%tensions are referred to as thorns. The flesh manages program e%ecution.
&sers specify runtime parameters and e%ecution in special input files. This is dynamic,
so users can change parameters and the e%ecution schedule of various parts of the code
during runtime.
A standard list of available thorn toolkits is available for do!nload from the cactus !eb
site and includes the follo!ing'
Computational Toolkit' thorns for standard capabilities such as utilities for /( in
various formats and computational steering.
)*+, Toolkit' contains thorns needed for /( using the )*+, data format.
P-T.c Toolkit' thorns for interacting !ith the P-T.c library for solving elliptic
e/uations.
0enchmarking Toolkit' provides a benchmarking application "solver for
gravitational !aves#.
1eb 0ro!ser Toolkit' provides thorns that act as !eb servers. &sers steer
computations via http re/uests. (utput streams from running applications can be
displayed as $pegs.
Cactus !as initially developed to support !ork on large-scale problems in computational
numerical relativity. A number of specialized thorns are available for solving boundary
value and time evolution problems on three-dimensional Cartesian grids. nterested
developers can create their o!n custom thorns.
2uch of the Cactus pro$ect may be thought of as providing sophisticated e%tensions
"richer /(, computational steering, easy access to parallelized and/or grid-enable
subroutines and functions# to the standard libraries of +ortran and C/C33.
n terms of collaborative and computational portals, Cactus is code centric' Cactus
provides a !ay of !eb-enabling individual codes. &sers must have access to the source
code of their applications in order to add calls to Cactus methods.
Cactus provides the follo!ing collaborative capabilities'
A thorn acting as a !eb server provides access to running applications.
2ultiple participants can connect to this server !ith their bro!sers. The
session is pass!ord protected.
Participants can steer the application by changing input parameter values.
This is an )TTP re/uest layer on top of the core steering capabilities that
Cactus provides.
Cactus4 checkpointing and /( functions allo! the code to output data as a
$peg stream so that all of the session participants can see the visualized output
in their bro!sers.
5ote that the collaborative and !eb-access capabilities are only part of the Cactus
pro$ect. &sers can use Cactus thorns for parallelization, /(, and steering independently
of the !eb thorns.
Cactus can be used in codes !ritten in +ortran "+66 and +78#, C, and C33.
Availability
+ree do!nload !ith source code. 9atest version is :.8 beta 7.
Web Site
http'//!!!.cactuscode.org