Difference between revisions of "MADNESS"

From Tau Wiki
Jump to: navigation, search
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:

tau-madness-r1177.diff

  • 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 ???%