About Cactus

Cactus provides computational scientists and engineers with a collaborative, modular and portable programming environment for parallel high performance computing. Cactus can make use of many other technologies for HPC, such as Samrai, HDF5, PETSc and PAPI, and several application domains such as numerical relativity, computational fluid dynamics and quantum gravity are developing open community toolkits for Cactus.

Cactus allows you to develop code in your language of choice: F77, F90, C, C++ are all supported — developers write their own components, which we call “thorns” which are connected together by the Cactus “flesh”. Developers and users can take advantage of a selection of existing computational thorns, as well as a growing number of domain specific thorns.

Cactus runs on a wide range (just about all) architectures and operating systems. Cactus is being used as the basis for numerous projects in computational science, and new technologies such as Grid computing, parallel file I/O, adaptive mesh refinement are very quickly available to our users.

Cactus is developed and supported by an international team of computational and computer scientists, based largely at the Center for Computation & Technology at Louisiana State University.

How do I cite Cactus?

Here is an example citation of the flesh:

Goodale et al. “The Cactus Framework and Toolkit: Design and Applications.” Vector and Parallel Processing – VECPAR’2002, 5th International Converence, Lecture Notes in Computer Science. Berlin:Springer, 2003. <http://edoc.mpg.de/3341>.

The BibTeX entry:

  author =       {Tom Goodale and Gabrielle Allen and Gerd Lanfermann
                  and Joan Mass{\'o} and Thomas Radke and Edward
                  Seidel and John Shalf},
  title =        {The {Cactus} Framework and Toolkit: Design and
  booktitle =    {Vector and Parallel Processing -- VECPAR'2002, 5th
                  International Conference, Lecture Notes in Computer
  year =         2003,
  address =      {Berlin},
  publisher =    {Springer},
  url =          {http://edoc.mpg.de/3341},