Difference between revisions of "CHARMM"

From Tau Wiki
Jump to: navigation, search
Line 10: Line 10:
 
2. CHARMM finds MPI via environment variables so:
 
2. CHARMM finds MPI via environment variables so:
  
%> export  MPI_INCLUDE=<mpi include dir>
+
%> export  MPI_INCLUDE=<mpi include dir>
%> export MPI_LIB=<mpi include dir>
+
%> export MPI_LIB=<mpi include dir>
  
 
3. I started with source based instrumentation (via PDT), notice the use of a
 
3. I started with source based instrumentation (via PDT), notice the use of a
 
selective instrumentation file to tune instrumentation:
 
selective instrumentation file to tune instrumentation:
  
%> export TAU_MAKEFILE=<tau home>/<arch>/lib/Makefile.tau-mpi-pdt
+
%> export TAU_MAKEFILE=<tau home>/<arch>/lib/Makefile.tau-mpi-pdt
%> export TAU_OPTIONS='-optKeepFiles -optVerbose -optTauSelectFile=<full path to select.tau>'
+
%> export TAU_OPTIONS='-optKeepFiles -optVerbose -optTauSelectFile=<full path to select.tau>'
  
%> cat select.tau '''
+
%> cat select.tau
 +
<pre>
 
BEGIN_EXCLUDE_LIST
 
BEGIN_EXCLUDE_LIST
  
Line 49: Line 50:
  
 
END_EXCLUDE_LIST
 
END_EXCLUDE_LIST
'''
+
</pre>
  
 
4. Now I need to override the default mpif90 compiler with TAU's tau_f90.sh
 
4. Now I need to override the default mpif90 compiler with TAU's tau_f90.sh
Line 56: Line 57:
 
TAU):
 
TAU):
  
%> sed -i 's/mpif90/tau_f90.sh/g' install.com
+
%> sed -i 's/mpif90/tau_f90.sh/g' install.com
  
 
and compile with the xlarge version with MPI:
 
and compile with the xlarge version with MPI:
  
%> ./install.com gnu xlarge NOLOG M
+
%> ./install.com gnu xlarge NOLOG M
  
 
Now when you run a simulation you will get TAU profile.* files in your current directory.
 
Now when you run a simulation you will get TAU profile.* files in your current directory.

Revision as of 22:30, 19 August 2009


Building CHARMM

Instructions for instrumenting CHARMM with TAU:

1. My gfortran compiler had problems with some WRITE commands in source/nbond/enbips.src so I commented out line 3288 and 3301.

2. CHARMM finds MPI via environment variables so:

%> export  MPI_INCLUDE=<mpi include dir>
%> export MPI_LIB=<mpi include dir>

3. I started with source based instrumentation (via PDT), notice the use of a selective instrumentation file to tune instrumentation:

%> export TAU_MAKEFILE=<tau home>/<arch>/lib/Makefile.tau-mpi-pdt
%> export TAU_OPTIONS='-optKeepFiles -optVerbose -optTauSelectFile=<full path to select.tau>'
%> cat select.tau
BEGIN_EXCLUDE_LIST

# omit this routine, TAU has problems this some CONTINUE statements
MASTER.0.TIMRB::TIMRB

# omit these low level routine that contribute to excessive instrumentation
# overhead
ERFCD
EXCH5
GAUSSI
MPI_Irecv()
MPI_Isend()
NINDX
OLDRANDOM
ORDER5
PATOM
PMEUTIL::CFFTB
PMEUTIL::CFFTB1
PMEUTIL::CFFTF
PMEUTIL::CFFTF1
PMEUTIL::FILL_BSPLINE
PMEUTIL::PASSB2
PMEUTIL::PASSB4
PMEUTIL::PASSF2
PMEUTIL::PASSF4
PROCATOMS
RANDOM

END_EXCLUDE_LIST

4. Now I need to override the default mpif90 compiler with TAU's tau_f90.sh wrapper script. The easiest way to do this was with global replace in install.com (you may want to backup this file so you can compile CHARMM without TAU):

%> sed -i 's/mpif90/tau_f90.sh/g' install.com

and compile with the xlarge version with MPI:

%> ./install.com gnu xlarge NOLOG M

Now when you run a simulation you will get TAU profile.* files in your current directory.