Difference between revisions of "CHARMM"

From Tau Wiki
Jump to: navigation, search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Category:Applications]]
 
[[Category:Applications]]
 +
 +
==Background==
  
 
==Building CHARMM==
 
==Building CHARMM==
Line 10: Line 12:
 
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>'
 +
 
 +
<pre>
 +
%> cat select.tau
  
%> cat select.tau '''
 
 
BEGIN_EXCLUDE_LIST
 
BEGIN_EXCLUDE_LIST
  
Line 47: Line 51:
 
PROCATOMS
 
PROCATOMS
 
RANDOM
 
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
 
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 95:
 
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.

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.