NCSA Home
Contact Us | Intranet | Search

data link Story: Flesh and Thorns Explained

News
datalink
9911
Current issue
Archives

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.