Difference between revisions of "MADNESS"
Line 29: | Line 29: | ||
* Examine results... | * Examine results... | ||
− | =Instrumentation Methods= | + | =Overhead of Instrumentation Methods= |
Of the available instrumentation options, the only viable solution we found was to use header instrumentation with a selective instrumentation file (automatically generated). | Of the available instrumentation options, the only viable solution we found was to use header instrumentation with a selective instrumentation file (automatically generated). | ||
+ | |||
+ | {| class="wikitable" border=1 cellpadding=1 style="text-align:center" | ||
+ | |- | ||
+ | !Method | ||
+ | !Number of Profiled Events | ||
+ | !Runtime (seconds) | ||
+ | !Overhead (%) | ||
+ | |- | ||
+ | !Uninstrumented | ||
+ | ! | ||
+ | !654s | ||
+ | ! | ||
+ | |- | ||
+ | |Regular Source Instrumentation | ||
+ | |183 | ||
+ | |748s | ||
+ | |14.4% | ||
+ | |- | ||
+ | |Compiler-based Instrumentation | ||
+ | |1321 | ||
+ | |19625s | ||
+ | |2901% | ||
+ | |- | ||
+ | |Source Instrumentation with headers (-optHeaderInst) | ||
+ | |??? | ||
+ | |???s | ||
+ | |???% | ||
+ | |- | ||
+ | | -optHeaderInst and selective instrumentation | ||
+ | |??? | ||
+ | |???s | ||
+ | |???% | ||
+ | |} |
Revision as of 23:37, 28 July 2009
To build MADNESS with TAU for profiling/tracing, some modifications need to be made to the code for parsing purposes. Additionally, a modification was made to fix a bug in MADNESS.
- To begin, get the source from svn:
svn co -r1177 http://m-a-d-n-e-s-s.googlecode.com/svn/local/trunk madness
- Next, patch it with the following patch:
- Build TAU with -pthread support.
- Next, make sure you have built your own blas and lapack (system installed ones will rarely work). Also, install google perftools. Configure as follow:
MPICC=tau_cc.sh MPICXX=tau_cxx.sh ../configure --prefix=$HOME/apps/madness/install-tau LIBS="-L/usr/local/packages/lapack -llapack -lblas \ -lgfortran -L/usr/local/packages/google-perftools-1.3/lib -ltcmalloc_minimal" --disable-dependency-tracking
- Build the code
make
- Run the code
export MADNESS_ROOT=$HOME/apps/madness/install-tau export MAD_NTHREAD=7 export MRA_DATA_DIR=${MADNESS_ROOT}/share export TAU_VERBOSE=1 export TAU_METRICS=LINUX_TIMERS time mpiexec -n 1 ${MADNESS_ROOT}/bin/moldft
- Examine results...
Overhead of Instrumentation Methods
Of the available instrumentation options, the only viable solution we found was to use header instrumentation with a selective instrumentation file (automatically generated).
Method | Number of Profiled Events | Runtime (seconds) | Overhead (%) |
---|---|---|---|
Uninstrumented | 654s | ||
Regular Source Instrumentation | 183 | 748s | 14.4% |
Compiler-based Instrumentation | 1321 | 19625s | 2901% |
Source Instrumentation with headers (-optHeaderInst) | ??? | ???s | ???% |
-optHeaderInst and selective instrumentation | ??? | ???s | ???% |