#!/bin/bash
#SBATCH --nodes=1 --ntasks=4 --gpus-per-node=v100:4
#SBATCH --mem-per-cpu=2000 --time=1:0:0
INPFILE=pmemd_prod.in
LOGFILE=md_${SLURM_JOBID}.log
module --force purge
ml StdEnv/2020 gcc/9.3.0 cuda/11.0 openmpi/4.0.3 amber/20.9-20.15
srun pmemd.cuda.MPI -O -i $INPFILE -o $LOGFILE -p prmtop.parm7 -c restart.rst7
Benchmark submission:
#!/bin/bash
#SBATCH --nodes=1 --ntasks=4 --gpus-per-node=v100:4
#SBATCH --mem-per-cpu=2000 --time=1:0:0
# Usage: sbatch submit.cuda.sh]
INPFILE=pmemd_prod.in
STEPS=20000
# End of user input
TMPFILE=tf_${SLURM_NTASKS}
LOGFILE=production_${SLURM_NTASKS}.log
module --force purge
ml StdEnv/2020 gcc/9.3.0 cuda/11.0 openmpi/4.0.3 amber/20
# Print resource info
echo ${SLURM_NODELIST} running on ${SLURM_NTASKS} cores
cat /proc/cpuinfo | grep "model name" | uniq
# Run simulation three times
srun pmemd.cuda.MPI -O -i $INPFILE -o $LOGFILE -p prmtop.parm7 -c restart.rst7
grep "NonSetup CPU time" $LOGFILE > $TMPFILE
srun pmemd.cuda.MPI -O -i $INPFILE -o $LOGFILE -p prmtop.parm7 -c restart.rst7
grep "NonSetup CPU time" $LOGFILE >> $TMPFILE
srun pmemd.cuda.MPI -O -i $INPFILE -o $LOGFILE -p prmtop.parm7 -c restart.rst7
grep "NonSetup CPU time" $LOGFILE >> $TMPFILE
# Print average of three runs.
echo -n "ns/day:"
awk -v steps=$STEPS '{total += $6; count++ } END { print count*3.6*2.4*steps*0.01/total}' $TMPFILE
#rm $TMPFILE $LOGFILE mdinfo mdcrd restrt
Benchmark
&cntrl
imin=0,irest=1,ntx=5,
nstlim=20000,dt=0.001,
ntc=2,ntf=2,
cut=8.0,
ntpr=100, ntwx=1000,
ntb=2, ntp=1, taup=2.0,
ntt=3, gamma_ln=2.0, temp0=300.0,
/
&ewald
nfft1=128,
nfft2=128,
nfft3=128,
/