POOMA r2 at Computational Physics Tübingen
Here at the Institut für Astronomie und Astrophysik, Abteilung computational Physics we use POOMA r2 for multidimensional, parallel MRHD astrophysical simulations. POOMA originally came from the ACL/LANL labs (no longer operating), continued by CodeSourcery, LLC and now finally moved to Savannah.
Building on the POOMA CVS at CodeSourcery POOMA was extended by:
- Reference documentation generated out of the in-source documentation. We use doxygen for this task and you can view the current state of this effort here. merged
- Optimizing POOMAs use of internal guards to minimize communication cost. merged
- Native support for MPI and OpenMP. merged
- Interfacing with the PETSc library. merged
- HDF5 reader/writer. More or less ready, ask for patches if you want to have a look/contribute.
- Different coordinate system support (Cartesian, cylindrical and spherical). Complete implementation is avaliable on demand.
Further work may include:
- Rework build infrastructure to use autoconf/automake.
- Static and adaptive mesh refinement.
Part of this work was/is sponsored by the Deutsche Forschungsgesellschaft within the Collaborative Research Center SFB 382.
Merged parts were done during my spare-time, not merged parts are subject to more restrictive licensing - ask me privately if you intend to use these for scientific/educational purposes.
Development now continues at Savannah.
Other people working on/with POOMA
If you are working on/with POOMA and want to appear here, just e-mail me.
I have collected a list of beginner projects for where you can try to improve POOMA and its performance. You may want to contact me if you start working on an item of this list, so you can avoid duplicating work.
Downloads
You need the POOMA library for serial operation, as well as the Cheetah
library if you want MPI or shared memory parallelization. POOMA as of
2.4.0 does not build with a compiler which requires strict ISO C++ compliance
(such as gcc 3.4 or the Intel compiler). SMARTS does not build at all due
to thread library issues. I never tried the profiling/instrumentation
libraries. You don't need PETE, it is included in the POOMA library and
provided here only for completeness.
- POOMA 2.4.0
- POOMA 2.4.0 project files for MSVC and CodeWarrier (may be out of date).
- Cheetah 1.1.4 (no license) for MPI and shared memory support (with MM 1.3.0, see links below for primary distribution site)
- SMARTS 1.2.0 for thread support
- TAU 2.11.8 and PDT 2.1 for profiling support (see links below for primary distribution site)
- PETE 2.1.0 expression template library
Links
POOMA and related projects homepages:
- POOMA (CodeSourcery)
- PDT - Program Database Toolkit, used by TAU
- TAU - Tuning and Analysis Utilities
- LUX - a three-dimensional visualization system designed around Kitware's Visualization Toolkit.
- MM library, 2-layer abstraction library which simplifies the usage of shared memory between forked processes under Unix platforms.
- PAWS - Parallel Application WorkSpace. The latest version of PAWS was 2.2.0. PAWS was developed at the Advanced Computing Laboratory at Los Alamos National Laboratory; its principal developers were Peter Beckman, Bill Humphrey, Pat Fasel, Susan Mniszewski and Bill Humphrey. The Nexus library is related.
- Cheetah, a library for remote method invocation layered on a message passing interface (no primary distribution site, formerly ACL/LANL)
- PETE, Portable Expression Template Engine (no primary distribution site, formerly ACL/LANL)
- SMARTS, Scalable Multithreaded Asynchronous Runtime System (no primary distribution site, formerly ACL/LANL)
- Tulip, a Portable Parallel Run-time Class Library (no primary distribution site, formerly ACL/LANL)
Random sites that include references to POOMA:
Other Tools
POOMA can use PETSc for solving linear equations in parallel. Unfortunately the PETSc
build system is a complete mess, so here is a
drop-in replacement that is more sane, though incomplete and hackish.