12.07.2015 Views

(ed.). Gravitational waves (IOP, 2001)(422s).

(ed.). Gravitational waves (IOP, 2001)(422s).

(ed.). Gravitational waves (IOP, 2001)(422s).

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

390 Numerical relativitynumerics and computer science) and because of the geographical distribution ofthe people and computer resources involv<strong>ed</strong> in simulation and data analysis.The name Cactus comes from the design of a central core (or flesh) whichconnects to application modules (or thorns) through an extensible interface.Thorns can implement custom develop<strong>ed</strong> scientific or engineering applications,such as the Einstein solvers, or other applications such as computational fluiddynamics. Other thorns from a standard computational toolkit provide a range ofcapabilities, such as parallel I/O, data distribution, or checkpointing.Cactus runs on many architectures. Applications, develop<strong>ed</strong> on standardworkstations or laptops, can be seamlessly run on clusters or supercomputers.Parallelism and portability are achiev<strong>ed</strong> by hiding the driver layer and featuressuch as the I/O system and calling interface under a simple abstraction API. TheCactus API supports C/C++ and F77/F90 programming languages for the thorns.Thus, thorn programmers can work in the language they find most convenient,and are not requir<strong>ed</strong> to master the latest and greatest computing paradigms. Thismakes it easier for scientists to turn existing codes into thorns which can thenmake use of the complete Cactus infrastructure, and in turn be us<strong>ed</strong> by otherthorns within Cactus.Cactus provides easy access to many cutting <strong>ed</strong>ge software technologies beingdevelop<strong>ed</strong> in the academic research community, such as the Globus MetacomputingToolkit, HDF5 parallel file I/O, the PETSc scientific computing library,adaptive mesh refinement, web interfaces, and advanc<strong>ed</strong> visualization tools.So, how does a user use the code? A detail<strong>ed</strong> user guide is available withthe code (see http://www.cactuscode.org), but in a nutshell, one specifies whichphysics modules, and which computational/parallelism modules, are desir<strong>ed</strong> in aconfiguration file, and makes the code on the desir<strong>ed</strong> architecture, which can beany one of a number of machines from SGI/Cray Origin or T3E, Dec Alpha, Linuxworkstations or clusters, NT clusters, and others. The make system automaticallydetects the architecture and configures the code appropriately. Control of runparameters is then provid<strong>ed</strong> through an input file. Additional modules can beselect<strong>ed</strong> from a large community-develop<strong>ed</strong> library, or new modules may bewritten and us<strong>ed</strong> in conjunction with the pre-develop<strong>ed</strong> modules.Our experiences with Cactus up to now suggest that these techniques areeffective. It allows a code of many tens of thousands of lines, but with acompact flesh that is possible to maintain despite the large number of peoplecontributing to it. The common code base has enhanc<strong>ed</strong> the collaborativeprocess, having important and beneficial effects on the flow of ideas betweenremote groups. This flexible, open code architecture allows, for example, arelativity expert to contribute to the code without knowing the details of, say,the computational layers (e.g., message passing or AMR libraries) or othercomponents (e.g., hydrodynamics). We encourage users from throughout therelativity and astrophysics communities to make use of this freely downloadablecode infrastructure and physics modules, either for their own use, or as acollaborative tool to work with other groups in the community.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!