Difference between revisions of "CHARMM"

From Tau Wiki
Jump to: navigation, search
(Building CHARMM)
Line 2: Line 2:
  
 
==Building CHARMM==
 
==Building CHARMM==
CHARMM uses the install.com script to configure compilation. By setting some environment variables you can control its behavior. For example to build with TAU on Ranger, first load the intel compilers:
 
  
module rm mvapich
+
Instructions for instrumenting CHARMM with TAU:
module load intel
 
module load mvapich
 
  
Then run the install.com script with the tau_f90.sh as the compiler:
+
1. My gfortran compiler had problems with some WRITE commands in
 +
source/nbond/enbips.src so I commented out line 3288 and 3301.
  
  MPI_F90=ifort MPI_INCLUDE=/opt/apps/intel10_1/mvapich/1.0.1/include MPI_LIB=/opt/apps/intel10_1/mvapich/1.0.1/lib ./install.com em64t xlarge NOLOG M
+
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.

Revision as of 23:13, 12 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

  1. omit this routine, TAU has problems this some CONTINUE statements

MASTER.0.TIMRB::TIMRB

  1. omit these low level routine that contribute to excessive instrumentation
  2. 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.