Difference between revisions of "CHARMM"

From Tau Wiki
Jump to: navigation, search
 
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Category:Applications]]
 
[[Category:Applications]]
 +
 +
==Background==
  
 
==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:
+
 
  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
+
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>'
 +
 
 +
<pre>
 +
%> 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
 +
ATOMID
 +
CHARMM    => ATOMID
 +
CHARMM    => CMAPSPI
 +
CHARMM    => GENIC::SUB600
 +
CHARMM    => GETRES
 +
CHARMM    => GETSEG
 +
CHARMM    => HYDROG
 +
CHARMM    => INITIA
 +
CHARMM    => LONE
 +
CHARMM    => MATOM
 +
CHARMM    => WRNDIE
 +
CMAPSPI
 +
CNVTUC
 +
EQST
 +
EQSTA
 +
GENIC::SUB600
 +
GETRES
 +
GETSEG
 +
HYDROG
 +
INITIA
 +
LONE
 +
MATOM
 +
TRIME
 +
WRNDIE
 +
 
 +
# new routines
 +
CHARMM    => EQSTWC
 +
CHARMM    => EQSTWC::SUB10
 +
EQSTWC
 +
EQSTWC::SUB10
 +
MPI_Comm_rank()
 +
MPI_Comm_size()
 +
PMEUTIL::XY_ZX_TR_RCV
 +
PMEUTIL::ZX_TRANS_RECV
 +
 
 +
 
 +
END_EXCLUDE_LIST
 +
</pre>
 +
 
 +
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.

Latest revision as of 21:55, 27 February 2012


Background

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
ATOMID
CHARMM    => ATOMID
CHARMM    => CMAPSPI
CHARMM    => GENIC::SUB600
CHARMM    => GETRES
CHARMM    => GETSEG
CHARMM    => HYDROG
CHARMM    => INITIA
CHARMM    => LONE
CHARMM    => MATOM
CHARMM    => WRNDIE
CMAPSPI
CNVTUC
EQST
EQSTA
GENIC::SUB600
GETRES
GETSEG
HYDROG
INITIA
LONE
MATOM
TRIME
WRNDIE

# new routines
CHARMM    => EQSTWC
CHARMM    => EQSTWC::SUB10
EQSTWC
EQSTWC::SUB10
MPI_Comm_rank()
MPI_Comm_size()
PMEUTIL::XY_ZX_TR_RCV
PMEUTIL::ZX_TRANS_RECV


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.