AMBER: running sander_classic on multiple processors

From: Richard Smith <>
Date: Tue, 14 Oct 2003 09:48:23 -0400


        I am trying to get sander_classic of AMBER 6 to run on a dual
processor machine (trying to get AMBER to utilize both processors) with
MPICH version, running on Linux (Red Hat version 7.1).
Everything appeared to compile properly using the -DMPI flag, and the
CPP and LOADLIB variables pointing to the appropriate include and
library files for MPICH in the MACHINE file. However, when I try to run
sander_classic with the command "mpirun -np 2
$AMBERHOME/exe/sander_classic -i etc.", sander_classic starts up
on multiple processors, and starts writing to the output file, but after
a short period of time (~20 seconds) it only runs on one processor, and
does not write to any of the output files, so I can't tell if the
calculation is proceeding. The same calculation using the command
"mpirun -np 1 $AMBERHOME/exe/sander_classic -i etc." runs just
fine, and finishes before the two processor job. Below is the MACHINE
file and input file for the mdrun.
        Unfortunately I don't get any error messages from either
sander_classic or MPICH.

Here are the settings of the MACHINE file:

setenv MACHINE "linux/FreeBSD/Windows PC"
setenv MACH Linux

# CPP is the cpp for this machine
setenv CPP "/lib/cpp -traditional -I/users/MPICH/mpich-"
setenv CC gcc

# SYSDIR is the name of the system-specific source directory relative to
setenv SYSDIR Machines/g77


setenv LOAD "g77"
setenv LOADLIB "-lm -L/users/MPICH/mpich- -lmpich"
setenv G77_COMPAT " "
# following seems to actually slow down code, though it works well on
#setenv G77_OPT "-O6 -m486 -malign-double -ffast-math
-fomit-frame-pointer -funroll-loops -funroll-all-loops -mcpu=pentiumpro
-march=pentiumpro -ffloat-store -fforce-mem -frerun-cse-after-loop -fex
pensive-optimizations -fugly-complex"

# following appears to be the best we have found so far:
setenv G77_OPT " "

# little or no optimization:
setenv L0 "g77 -c -g"

# modest optimization (local scalar):
setenv L1 "g77 -c $G77_OPT $G77_COMPAT"

# high scalar optimization (but not vectorization):
setenv L2 "g77 -c $G77_OPT $G77_COMPAT"

# high optimization (may be vectorization, not parallelization):
setenv L3 "g77 -c $G77_OPT $G77_COMPAT"

# ranlib, if it exists
setenv RANLIB ranlib

Here is a copy of the input file:

temperature ramping input file
  NTX = 1,
  IREST = 0,
  INIT = 3,
  SCEE = 1.2,
  NTB = 1,
  NTC = 2,
  NTF = 2,
  CUT = 12.0,
  NSNB = 30,
  NSTLIM = 10000,
  DT = 0.001,
  NDFMIN = 6,
  TEMPI = 10,
  TEMP0 = 70,
  HEAT = 2.6457513,
  NTT = 1,
  TAUP = 0.2,
  NTP = 0,
  NTWR = 500,
  NTWE = 500,
  NTWX = 500,
  NTWXM = 0,
  NTWEM = 0,
  NTWVM = 0,
  JFASTW = 0,
  NTCM = 1,
  IBEllY = 0,
Thank you for any assistance you may provide.

Richard Smith
Graduate Student
University of Michigan
Department of Biophysics

The AMBER Mail Reflector
To post, send mail to
To unsubscribe, send "unsubscribe amber" to
Received on Tue Oct 14 2003 - 14:53:01 PDT
Custom Search