connections to other packages the cactus team albert einstein institute [email protected]
TRANSCRIPT
Why Link to Other Packages?Why Link to Other Packages?
Cactus is a framework or middleware for unifying and incorporating code from Thorns
The Cactus Computational Toolkit is a set of Thorns which provide different capabilities, such as interpolation and IO
Philosophy: provide users with as much choice and variety as possible.
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.
Cactus developers concentrate on generic interfaces.
Cactus can make use of ...Cactus can make use of ...
Autopilot
FlexIO (IEEEIO/HDF5)
Globus
GrACE
HDF5
MPI
Panda IO
PAPI
PETSc
AutoPilotAutoPilot
Dynamic performance instrumentation, on-the-fly performance data reduction, resource management algorithms, real-time adaptive control mechanism
Cactus provides a mechanism to register timers, and Autopilot is currently being integrated.
http://www-pablo.cs.uiuc.edu/Project/Autopilot/AutopilotOverview.htmhttp://www.cactuscode.org/Documentation/HOWTO/Performance-HOWTOhttp://www.cactuscode.org/Projects.html
FlexIO (IEEEIO)FlexIO (IEEEIO)
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:AmiraAVSIDL
LCA VisionNAG Explorer
IEEEIO is a compact library for storing multidimensional scientific data in a binary format that can be transported between different computer systems.
Cactus thorn CactusPUGHIO/IOFlexIO outputs multidimensional data using the IEEEIO library. http://zeus.ncsa.uiuc.edu/~jshalf/FlexIO/http://zeus.ncsa.uiuc.edu/~jshalf/FlexIO/IEEEIO.htmlhttp://www.cactuscode.org/Documentation/HOWTO/Visualization-HOWTODocumentation in thorns CactusBase/IOUtil and CactusPUGHIO/IEEEIO
Globus ToolkitGlobus Toolkit
Globus Toolkit: Enables application of Grid concepts to scientific and engineering computing
Cactus (with the default MPI driver) compiles with Globus (1.0/1.1), using MPICH-G.
Cactus can then be run using RSL scripts as usual with Globus
http://www.globus.org/http://www.cactuscode.org/Documentation/HOWTO/Globus-HOWTOhttp://jean-luc.aei-potsdam.mpg.de/SC98/
The Grid: Dependable, consistent, pervasive access to [high-end] resources
Collaborative engineeringBrowsing of remote datasets
Use of remote softwareData-intensive computing
Very large-scale simulationLarge-scale parameter studies
GrACEGrACE
Parallel/distributed AMR via C++ library
Abstracts Grid Hierarchies, Grid Functions and Grid Geometries
CactusPAGH will include a driver thorn which uses GrACE to provide AMR (KDI ASC Project)
http://www.caip.rutgers.edu/~parashar/TASSL/Projects/GrACE/index.htmlhttp://www.cactuscode.org/Workshops/NCSA99/talk23/index.htm
HDF5HDF5 Hierarchical data format for scientific data management
(I/O libraries and tools). Future standard, overcomes limitations of HDF4. Simple
but powerful model, includes hyperslabs, datatype conversion, parallel IO.
Used for 2D/3D output in Computational Toolkit (CactusPUGHIO/IOHDF5)
Much development in (remote) visualization and steering with Cactus uses HDF5
Readers for Amira, OpenDX, (LCA Vision).
http://hdf.ncsa.uiuc.edu/HDF5/http://www.CactusCode.org/Documentation/UsersGuide_html/node15.htmlhttp://www.cactuscode.org/Documentation/HOWTO/Visualization-HOWTODocumentation in thorns CactusBase/IOUtil and CactusPUGHIO/IOHDF5
MPI (Message Passing Interface)MPI (Message Passing Interface)
The default Cactus driver uses MPI for processor communications (CactusPUGH/PUGH).
Cactus supports most implementations of MPI, including Native MPI on many architectures, as well as MPICH, MPICH-G(2), LAM, WMPI, PACX and HPVM.http://www-unix.mcs.anl.gov/mpi/http://www-unix.mcs.anl.gov/mpi/mpich/http://www.mpi.nd.edu/lam/http://dsg.dei.uc.pt/w32mpi/intro.htmlhttp://www.hlrs.de/structure/organisation/par/projects/pacx-mpi/ http://www.cactuscode.org/Documentation/UsersGuide_html/node14.html
Panda IOPanda IO
Data management techniques for I/O intensive applications in high-performance scientific computing.
Simpler, more abstract interfaces, efficient layout alternatives for multidimensional arrays, high performance array I/O operations.
Thorn IOPanda
http://cdr.cs.uiuc.edu/panda/http://www.cactuscode.org/Workshops/NCSA99/talk13/sld003.htm
PAPIPAPI
Standard API for accessing the hardware performance counters on most microprocessors.
Useful for tuning, optimisation, debugging, benchmarking, etc.
http://icl.cs.utk.edu/projects/papi/http://www.cactuscode.org/Documentation/HOWTO/Performance-HOWTOhttp://www.cactuscode.org/Projects.html
Java GUI available for monitoring the metrics Cactus thorn CactusPerformance/PAPI
PETScPETSc
MPI based suite of data structures and routines for parallel solution of PDEs. Employs the MPI standard for message passing communication.
Cactus grid variables can be used to setup linear/non-linear systems and have them solved by PETSc.
http://www-fp.mcs.anl.gov/petsc/http://www.cactuscode.org/Documentation/HOWTO/PETSc-HOWTOhttp://www.cactuscode.org/Workshops/NCSA99/talk11/
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.
The Scalable Nonlinear Equations Solvers (SNES) component provide an interface to Newton-based methods for solving systems of nonlinear equations.