120 likes | 238 Views
Connections to Other Packages. The Cactus Team Albert Einstein Institute cactus@cactuscode.org. Why Link to Other Packages?. Cactus is a framework or middleware for unifying and incorporating code from Thorns
E N D
Connections to Other Packages The Cactus Team Albert Einstein Institute cactus@cactuscode.org
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 ... Autopilot FlexIO (IEEEIO/HDF5) Globus GrACE HDF5 MPI Panda IO PAPI PETSc
AutoPilot • 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.htm http://www.cactuscode.org/Documentation/HOWTO/Performance-HOWTO http://www.cactuscode.org/Projects.html
FlexIO (IEEEIO) IEEEIO readers for: Amira AVS IDL LCA Vision NAG Explorer • 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 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.html http://www.cactuscode.org/Documentation/HOWTO/Visualization-HOWTO Documentation in thorns CactusBase/IOUtil and CactusPUGHIO/IEEEIO
Globus 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 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 http://www.globus.org/ http://www.cactuscode.org/Documentation/HOWTO/Globus-HOWTO http://jean-luc.aei-potsdam.mpg.de/SC98/
GrACE • 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.html http://www.cactuscode.org/Workshops/NCSA99/talk23/index.htm
HDF5 • 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.html http://www.cactuscode.org/Documentation/HOWTO/Visualization-HOWTO Documentation in thorns CactusBase/IOUtil and CactusPUGHIO/IOHDF5
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.html http://www.hlrs.de/structure/organisation/par/projects/pacx-mpi/ http://www.cactuscode.org/Documentation/UsersGuide_html/node14.html
Panda 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
PAPI • Standard API for accessing the hardware performance counters on most microprocessors. • Useful for tuning, optimisation, debugging, benchmarking, etc. • Java GUI available for monitoring the metrics • Cactus thorn CactusPerformance/PAPI http://icl.cs.utk.edu/projects/papi/ http://www.cactuscode.org/Documentation/HOWTO/Performance-HOWTO http://www.cactuscode.org/Projects.html
PETSc • 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. • 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. http://www-fp.mcs.anl.gov/petsc/ http://www.cactuscode.org/Documentation/HOWTO/PETSc-HOWTO http://www.cactuscode.org/Workshops/NCSA99/talk11/