Difference between revisions of "CHARMM"
(→Building CHARMM) |
|||
Line 2: | Line 2: | ||
==Building CHARMM== | ==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. |
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
- 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.