UTAM REPRODUCIBLE RESEARCH AND C++ LIBRARIES Samuel Brown – February 6, 2009
Subversion Repository svn co _research/trunk utam --username=utam2008 password: qUinoa80
Repository Snapshots username: utam2008 password: qUinoa80 also contains images and intermediate data for student reports
Directory Structure
Prerequisites Compiling C++ Library scons version >= required fftw3 - optional – need to set FFTWHOME MPI C++ compiler/library – optional C++ Library Documentation Doxygen - optional
Environment Setup Option 1: cd utam source utamvars.[c]sh Option 2: export UTAMHOME=/path/to/utam source $UTAMHOME/utamvars.sh
Reproducibility Report directories contain a latex file and uniform python script for generating results and compiling report run.py: python only, does not use scons generates and runs shell scripts interactively simple mechanisms for downloading data and controlling computation with sources and targets
run.py Process( cmds=[ ], sources=[ ], targets=[ ], docmds=1, // check for targets or force/skip wdir=, // working directory bdir=, // batch directory sdir=, // source directory pbs=, // submit to cluster? nodes=, ppn=, walltime=, datapath=, scratchpath=, clean=, ktemps=, kbatch= )
C++ Compilation Compilation must take place from $UTAMHOME/src/ucsl Top-level SConstruct should be customized to your system cd $UTAMHOME/src/ucsl scons
SConstruct Customization USE_MPI=True BGP=False INTEL=False SANDDUNE=False HMM=False PS3D=False TEP=False if(BGP): UCPPFLAGS = ['-O5'] CC = 'bgxlc' CXX = 'bgxlc++' MPICC = 'mpixlc' MPICXX = 'mpixlcxx' BUILD_SERIAL = False USE_FFTW = True USE_THREAD = False
C++ Library Basic Objects Parameter Initialization Memory Abstractions Traces Axes Planes Volumes
C++ Library Task-specific File I/O Trace files Volume files Coordinate file
3D Modeling 3D domain decomposition object ability to separate boundary and interior regions load balancing 3D stencil overlap communication object