Flesh and Thorns Explained
The name Cactus comes from the initial design principle of a set of
modules, the thorns, that could be easily plugged into a basic kernel,
the flesh. The flesh has evolved into a meta-code, with its own
new object-oriented language, to enable dynamic assembly of many
different application codes from a set of thorns. The flesh is charged
with controlling how different thorns work together,
coordinating data flow between thorns and deciding when any routine
should be executed. The source code in thorns can be written in
any common computational language (i.e., C, C++, F77, and F90).
At the October training session co-sponsored by NCSA and the
Albert Einstein Institute (AEI) in Germany, Ed
Seidel said Cactus is a hard to define concept that often stumps the
understanding of the casual reader. Seidel, a senior research scientist at
AEI and NCSA, and the unofficial Cactus evangelist, says Cactus is a
way to avoid the "monster code syndrome" because it offers scientific
modularity. It was developed in response to the needs of his research
group, and those of a distributed set of collaborating groups, originally
to carry out large-scale parallel simulations of Einstein's equations for
the gravitational field. However, algorithms like those needed to support
simulations of such complex partial differential equationss can be
applied to many different research fields.
Cactus runs on many systems under a variety of Unix or Windows OS flavors
including SGI Origin2000 running Irix, Cray T3E, DEC Alpha running DEC OS
or Linux, Windows NT, and Intel Linux. The Cactus flesh provides variables,
parameters, I/O functions, information functions, reduction, and
interpolation for thorns. It is written in C and in Perl that generates C.
Thorns interact with the Cactus flesh and with each other through a
well-defined interface. Cactus thorns, which can be written in F90, F77,
and C or any mixture of the three, are comprised of routines.
The development team offers a comprehensive
website that is updated
frequently. Download and development information, documentation, and a
showcase section are available. Under Documentation is the
User's
Guide, best printed locally from the PostScript file provided. Also in this
section is a list of current thorns in their official "arrangements" --
Cactus talk for administrative groupings of related thorns that address a
specific need such as solving Einstein's equations. Contributions to the
thorn list are welcome and may be sent to the Potsdam-based group.