#!/bin/bash
#SBATCH -c2 --gres=gpu:v100:2
#SBATCH --mem-per-cpu=2000 --time=1:0:0
# Usage: sbatch submit.cuda.sh [number_of_steps]
INPFILE=namd.in
#------- End of user input ------
STEPS=$1
TMPFILE=tf_${SLURM_CPUS_PER_TASK}
cp $INPFILE run_${SLURM_CPUS_PER_TASK}.in
echo numsteps $1 >> run_${SLURM_CPUS_PER_TASK}.in
echo "CUDASOAintegrate on" >> run_${SLURM_CPUS_PER_TASK}.in
NAMDHOME=$HOME/NAMD_3.0alpha9_Linux-x86_64-multicore-CUDA
echo ${SLURM_NODELIST} running on ${SLURM_CPUS_PER_TASK} cores
cat /proc/cpuinfo | grep "model name" | uniq
nvidia-smi -L
# Run simulation three times
$NAMDHOME/namd3 +p${SLURM_CPUS_PER_TASK} +idlepoll run_${SLURM_CPUS_PER_TASK}.in > $TMPFILE
$NAMDHOME/namd3 +p${SLURM_CPUS_PER_TASK} +idlepoll run_${SLURM_CPUS_PER_TASK}.in > $TMPFILE
$NAMDHOME/namd3 +p${SLURM_CPUS_PER_TASK} +idlepoll run_${SLURM_CPUS_PER_TASK}.in > $TMPFILE
# Print average of three runs.
echo -n "ns/day:"
grep CPUTime $TMPFILE | cut -f5 -d " " | awk -v steps=$STEPS '{ total += $1; count++ } END { print count*3.6*2.4*steps*0.01/total}'
rm -f tf_* *.restart.* *.old *.BAK run_${SLURM_CPUS_PER_TASK}.in
# Amber/(t,s,x)leap generated parm and crd file
parmfile prmtop.parm7
ambercoor inpcrd.rst7
# GPU-resident integrator
CUDASOAintegrate on
numsteps 10000
# Input
bincoordinates equilibration.coor
binvelocities equilibration.vel
extendedsystem equilibration.xsc
# Output
restartfreq 10000
dcdfreq 10000
outputEnergies 10000
outputPressure 10000
outputname equilibration
# AMBER FF settings
amber on
rigidBonds all
useSettle on
rigidTolerance 1.0e-8
cutoff 9.0
pairlistdist 11.0
switching off
exclude scaled1-4
readexclusions yes
1-4scaling 0.83333333
scnb 2.0
ljcorrection on
# Integrator Parameters
timestep 1.0
nonbondedFreq 1
fullElectFrequency 1
stepspercycle 10
wrapAll on
# Temperature control
langevin on
langevinTemp 300
langevinDamping 1.0
# Pressure control
useGroupPressure yes
LangevinPiston on
LangevinPistonTarget 1.0
LangevinPistonPeriod 200
LangevinPistonDecay 100
LangevinPistonTemp 300
# PME settings
PME on
PMEGridSizeX 144
PMEGridSizeY 144
PMEGridSizeZ 144