MOLECULAR DYNAMICS PERFORMANCE GUIDE - COMPUTE CANADA

SOFTWARE DETAILS

ID=11, PMEMD.cuda.MPI

  • Module/Version: amber/20.9-20.15
  • Toolchain/Version: gomklc/2020a
  • CPU instruction set: avx512
  • Example job submission script:
    1. #!/bin/bash
    2. #SBATCH --ntasks=2 --gres=gpu:v100:2 --partition=all_gpus
    3. #SBATCH --mem-per-cpu=2000 --time=1:0:0
    4. module --force purge
    5. ml StdEnv/2020 gcc/9.3.0 cuda/11.0 openmpi/4.0.3 amber/20
    6. srun pmemd.cuda.MPI -O -i pmemd_prod.in -o production.log -p prmtop.parm7 -c restart.rst7
  • Benchmark submission script:
    1. #!/bin/bash
    2. #SBATCH -c1 --ntasks=2 --gres=gpu:v100:2 --partition=all_gpus
    3. #SBATCH --mem-per-cpu=2000 --time=1:0:0
    4. # Usage: sbatch submit.cuda.MPI.sh
    5. INPFILE=pmemd_prod.in
    6. STEPS=10000
    7. # End of user input
    8. TMPFILE=tf_${SLURM_NTASKS}
    9. LOGFILE=production_${SLURM_NTASKS}.log
    10. module --force purge
    11. ml StdEnv/2020 gcc/9.3.0 cuda/11.0 openmpi/4.0.3 amber/20
    12. # Print resource info
    13. echo ${SLURM_NODELIST} running on ${SLURM_NTASKS} tasks
    14. cat /proc/cpuinfo | grep "model name" | uniq
    15. # Run simulation three times
    16. srun pmemd.cuda.MPI -O -i $INPFILE -o $LOGFILE -p prmtop.parm7 -c restart.rst7
    17. grep "Master Total CPU time" $LOGFILE > $TMPFILE
    18. srun pmemd.cuda.MPI -O -i $INPFILE -o $LOGFILE -p prmtop.parm7 -c restart.rst7
    19. grep "Master Total CPU time" $LOGFILE >> $TMPFILE
    20. srun pmemd.cuda.MPI -O -i $INPFILE -o $LOGFILE -p prmtop.parm7 -c restart.rst7
    21. grep "Master Total CPU time" $LOGFILE >> $TMPFILE
    22. # Print average of three runs.
    23. echo -n "ns/day:"
    24. awk -v steps=$STEPS '{total += $6; count++ } END { print count*3.6*2.4*steps*0.01/total}' $TMPFILE
    25. rm $TMPFILE $LOGFILE mdinfo mdcrd restrt logfile