Transcript EU Meeting, Greece, June 2001
EU Network Meeting June 2001 Cactus
Gabrielle Allen, Tom Goodale Max Planck Institute for Gravitational Physics, (Albert Einstein Institute)
Outline
Brief what is Cactus?
Review of developments since last meeting Current release Beta 10 New Viz Tools, thorns, architectures Current work General Relativity thorns Released thorns in CactusEinstein Other relevant thorns Matter thorns from the WashU Relativity Group Matter in Cactus: current status and plans Rest of the meeting Talk with me and Tom about what you want to use Cactus for Talk with me if you want to work through some examples, make sure your laptop has everything installed right, get some advice on how to start, etc Any time left … demos of new viz/control stuff
Cactus in a Nutshell
Cactus acts a the “main” routine of your code, it takes care of e.g. parallelism, IO, checkpointing, parameter file parsing for you (if you want), and provides different computational infrastructure such as reduction operators, interpolators, coordinates, elliptic solvers, … Everything Cactus “does” is contained in thorns (modules), which you need to compile-in. If you need to use interpolation, you need to add in a thorn which does interpolation.
It is very extensible, you can add you own interpolators, IO methods etc.
Not all the computational infrastructure you need will be there, for example we don’t have a thorn for 2D coordinates yet, you may need to add your own (then hopefully make it available for others to use).
We’re trying to provide a easy-to-use environment for collaborative , high-performance computing, from easy compilation on any machine, to easy visualization of your output data.
Porting Your Code
program YourCode call ReadParameterFile call SetUpCoordSystem call SetUpInitialData call OutputInitialData do it=1,niterations call EvolveMyData call AnalyseData call OutputData end do end
If your existing code has this kind of structure Split into subroutines Clear argument lists it should be straightforward to put into Cactus.
Cactus will take care of the parameter file, and (hopefully) the coord system and IO, and if you’re lucky you can take someone elses Analysis, Evolution, Initial Data, … modules.
Thorn EvolveMyData
Probably you will make a thorn to do the evolution. This thorn will simply contain the source code of your existing evolution routines (with hopefully not to many changes).
You will need to add configuration files which detail how your thorn interacts with the Flesh and other thorns.
Thorn EvolveMyData Parameter Files and Test Suites Configuration Files ????
Source Code ????
Fortran Routines Documentation!
C Routines C++ Routines Make Information
Black Hole Run
Physics Computational Extract Exact PsiKadelia AHFinder IDAnalyticBH PUGHInterp IOBasi c PUG H IOASCII PUGHReduce ADMConstraints CartGrid3D IOUtil ADM Einstein MyThorn FLESH
Parameter File
ActiveThorns = "Time CartGrid3D PUGH pughslab pughreduce Einstein IDAnalyticBH ADM IOASCII IOUtil iobasic" cactus::cctk_itlast = 160 grid::type = "byspacing" grid::dx = 0.15
grid::dy = 0.15
grid::dz = 0.15
grid::domain = "octant" driver::global_nx = 20; driver::global_ny = 20; driver::global_nz = 20; einstein::initial_lapse = "one" einstein::evolution_system = "ADM" einstein::initial_data = "schwarzschild" einstein::slicing = "1+log" adm::bound = "radiative" adm::method = "stagleap" IO::outdir = "einstein1" IOASCII::out1D_vars = "einstein::grr einstein::alp" IOASCII::out1D_every = 5 IOBasic::outInfo_vars = "einstein::grr" IOBasic::outInfo_every = 20
How To Find Out About Thorns
Look at web pages http://www.cactuscode.org/Documentation/Thorns/ AEI and WashU thorns ??
Ask a colleague for a sample parameter file New checkout script to make it easy to check out Parameters?
Look in param.ccl in any thorn Use command line options from executable e.g.
./exe/cactus_
Current Release: Beta 10
New thorns: CactusUtils/NaNChecker CactusPUGH/PUGHInterp (replaces CactusPUGH/Interp) Flesh: Changes to time levels, interpolation API, parameters (more error checking for parameter file) Thorns: Boundary conditions, initialize memory to NaN/Zero/uninitialized Tools: Recombiner for HDF5 data New architectures: MacOS X (no Fortran or MPI) Thorn documentation gmake
Planned Development
Easier scripts for checking out and compiling GetCactus works now from a ThornList Adding GetCactus from a parameter file, and also automatically getting configuration file for a know machine Einstein: Improve spacetime – matter interface so that any thorns can be used together for spacetime, matter evolution Add timelevels (gxx, gxx_p, gxx_p_p), should improve performance, and be ready for AMR Easier viz, set up networks for OpenDX, Amira Release Cactus 4.0 !!
Mainly documentation and odd and ends Elliptic Solvers: Get what is there (SOR, PETSc,
From Other Projects
AMR Good progress with FMR and AMR now Portal Web interface from anywhere to all your machines, parameter files, collaborative and other awesome stuff Grid Computing For us this really means not needing to know anything at all about the machines you have access to, codes automatically seek out and exploit your resources Visualization Remote visualization very important for big simulations Also trying to make it easier, scripts to automatically find the right viz clients and networks for data (VizLauncher), networks specifically for GR Data description and management Again important for big simulations being run on many different machines Archiving data also really important, understanding and being able to reproduce old data sets
Users View
Computational Toolkit
CactusBase Boundary, IOUtil, IOBasic, CartGrid3D, IOASCII, Time CactusBench BenchADM CactusConnect HTTPD, HTTPDExtra CactusExample WaveToy1DF77, WaveToy2DF77 CactusElliptic EllBase, EllPETSc, EllSOR, EllTest CactusPUGH PUGHInterp, PUGH, PUGHSlab, PUGHReduce CactusPUGHIO IOFlexIO, IOHDF5, IsoSurfacer CactusIO IOJpeg CactusTest TestArrays, TestCoordinates, TestInclude1, TestInclude2, TestComplex, TestInterp, TestReduce CactusWave IDScalarWave, IDScalarWaveC, IDScalarWaveCXX, WaveBinarySource, WaveToyC, WaveToyCXX, WaveToyF77, WaveToyF90, WaveToyFreeF90 CactusExternal FlexIO, jpeg6b CactusUtils NaNChecker
Einstein Toolkit
Thorn CactusEinstein/Einstein Sets up standard GR variables for 3D problems: – gxx, gxy, gxz, gyy, gyz, gzz, – kxx,kxy,kxz,kyy, kyz, kzz, – alp, betax, betay, betaz Other tools – Mixed slicing methods (us maximal every 10 timesteps or if ????) – Courant timestep condition – Calculate spherical components – Generic mask function You need to use these variables if you want to use any of the other Einstein thorns or thorns from AEI/WashU
Einstein Toolkit
Spacetime evolution: ADM: staggered leapfrog, iterative Crank-Nicholson Analysis: AHFinder: locates apparent horizons using either minimization or flow algorithm.
ADMConstraints: violation of constraint equations.
PsiKadelia: calculate gauge invariant quantities Extract: waveforms from nearly axisymmetric, nearly linear regions Initial Data: IDAnalyticBH, IDBrillData,IDLinearWaves,IDAxiBrillBH
Other Thorns
Links for more information on these will be added to the EU web pages AEI: Web Page?
ADM_BSSN: BS evolution with different shift conditions Lazarus: NP quantities, perturbative evolution Excision: masks out region inside a black hole AMR: Carpet PAGH Zeus: Newtonian MHD Alpha/BetaThorns Maximal, Cartoon2D
Now Tom …
Tom will talk about what’s available at WashU, how Matter is currently treated with the CactusEinstein thorns, and how it is going to be improved so that we can use different spacetime and matter evolvers together.
More Information ...
Look at news on Cactus home page www.cactuscode.org
Also lots more information on Cactus pages: Worked example of WaveToy showing how to use web server thorn, viz clients Mailing lists: news, users, developers CVS updates of the thorns you are using Email cactusmaint.cactuscode.org (or me, Tom, Ed, ..)
Dynamic Grid Computing
Add more resources SDSC Free CPUs!! LRZ Queue time over, find new machine RZG Go!
Archive data Clone job with steered parameter Calculate/Output Invariants Found a horizon, try out excision Look for horizon Calculate/Output Grav. Waves Find best resources NCSA SDSC