Connections to Other Packages The Cactus Team Albert Einstein Institute
Why Link to Other Packages? n Cactus is a framework or middleware for unifying and incorporating code from Thorns n The Cactus Computational Toolkit is a set of Thorns which provide different capabilities, such as interpolation and IO n Philosophy: l provide users with as much choice and variety as possible. n External packages developed and maintained by experts in the respective fields. Cactus developers don’t need to reinvent the wheel, package developers get more users, users get better tools. n Cactus developers concentrate on generic interfaces.
Cactus can make use of... Autopilot FlexIO (IEEEIO/HDF5) Globus GrACE HDF5 MPI Panda IO PAPI PETSc
AutoPilot n Dynamic performance instrumentation, on-the-fly performance data reduction, resource management algorithms, real-time adaptive control mechanism n Cactus provides a mechanism to register timers, and Autopilot is currently being integrated
FlexIO (IEEEIO) n FlexIO is a compact multi-platform API for storing multidimensional scientific data. It hides the differences between underlying file formats including HDF5 and IEEEIO. IEEEIO readers for: Amira AVS IDL LCA Vision NAG Explorer n IEEEIO is a compact library for storing multidimensional scientific data in a binary format that can be transported between different computer systems. n Cactus thorn CactusPUGHIO/IOFlexIO outputs multidimensional data using the IEEEIO library Documentation in thorns CactusBase/IOUtil and CactusPUGHIO/IEEEIO
Globus Toolkit n Globus Toolkit: Enables application of Grid concepts to scientific and engineering computing n Cactus (with the default MPI driver) compiles with Globus (1.0/1.1), using MPICH-G. n Cactus can then be run using RSL scripts as usual with Globus The Grid: Dependable, consistent, pervasive access to [high-end] resources Collaborative engineering Browsing of remote datasets Use of remote software Data-intensive computing Very large-scale simulation Large-scale parameter studies
GrACE n Parallel/distributed AMR via C++ library n Abstracts Grid Hierarchies, Grid Functions and Grid Geometries n CactusPAGH will include a driver thorn which uses GrACE to provide AMR (KDI ASC Project)
HDF5 n Hierarchical data format for scientific data management (I/O libraries and tools). n Future standard, overcomes limitations of HDF4. Simple but powerful model, includes hyperslabs, datatype conversion, parallel IO. n Used for 2D/3D output in Computational Toolkit (CactusPUGHIO/IOHDF5) n Much development in (remote) visualization and steering with Cactus uses HDF5 n Readers for Amira, OpenDX, (LCA Vision) Documentation in thorns CactusBase/IOUtil and CactusPUGHIO/IOHDF5
MPI (Message Passing Interface) n The default Cactus driver uses MPI for processor communications (CactusPUGH/PUGH). n Cactus supports most implementations of MPI, including Native MPI on many architectures, as well as MPICH, MPICH-G(2), LAM, WMPI, PACX and HPVM
Panda IO n Data management techniques for I/O intensive applications in high- performance scientific computing. n Simpler, more abstract interfaces, efficient layout alternatives for multidimensional arrays, high performance array I/O operations. n Thorn IOPanda
PAPI n Standard API for accessing the hardware performance counters on most microprocessors. n Useful for tuning, optimisation, debugging, benchmarking, etc n Java GUI available for monitoring the metrics n Cactus thorn CactusPerformance/PAPI
PETSc n MPI based suite of data structures and routines for parallel solution of PDEs. Employs the MPI standard for message passing communication. n Cactus grid variables can be used to setup linear/non-linear systems and have them solved by PETSc n The Scalable Linear Equations Solvers (SLES) provide an interface to the combination of a Krylov subspace iterative method and a preconditioner or a sequential direct solver. n The Scalable Nonlinear Equations Solvers (SNES) component provide an interface to Newton-based methods for solving systems of nonlinear equations.