MOLECULAR DYNAMICS PERFORMANCE GUIDE - Digital Research Alliance of CANADA

BENCHMARK DETAILS

ID=210

  • Dataset: 6n4o
  • Software: GROMACS.cuda (gromacs/2023.2-gofbfc-2020.1.403.114-avx2)
  • Resource: 1 tasks, 32 cores, nodes, 4 GPUs, with NVLink
  • CPU: Xeon Silver 4216 (Cascade Lake), 2.1 GHz
  • GPU: Tesla-V100-SXM2-32GB, 8 cores/GPU
  • Simulation speed: 48.287 ns/day
  • Efficiency: 27.1 %
  • Site: Cedar
  • Date: Aug. 9, 2023, 4:46 p.m.
  • Submission script:

    #!/bin/bash
    #SBATCH --mem-per-cpu 2000 --time 1:0:0
    #SBATCH -c 32 --gpus-per-node v100l:4

    td=$SLURM_TMPDIR
    wd=$SLURM_SUBMIT_DIR
    cp topol.tpr $td && cd $td

    module load StdEnv/2020 gcc/9.3.0 cuda/11.4 openmpi/4.0.3 gromacs/2023.2

    gmx mdrun -ntomp ${SLURM_CPUS_PER_TASK:-1} \
    -nb gpu -pme gpu -update gpu -bonded cpu -s topol.tpr

    cp md.log $wd

  • Notes:

    (ns/day) (hour/ns)
    Performance: 48.287 0.497
    Performance: 48.235 0.498
    Performance: 48.217 0.498
    Performance: 48.216 0.498
    Performance: 48.113 0.499

  • Simulation input file:

    title = benchmark
    ; Run parameters
    integrator = md
    nsteps = 400000
    dt = 0.001
    ; Output control
    nstxout = 0
    nstvout = 0
    nstfout = 0
    nstenergy = 10000
    nstlog = 10000
    nstxout-compressed = 50000
    compressed-x-grps = System
    ; Bond parameters
    continuation = yes
    constraint_algorithm = lincs
    constraints = h-bonds

    ; Neighborsearching
    cutoff-scheme = Verlet
    ns_type = grid
    nstlist = 10
    rcoulomb = 0.8
    rvdw = 0.8
    DispCorr = Ener ; anaytic VDW correction
    ; Electrostatics
    coulombtype = PME
    pme_order = 4
    fourier-nx = 144
    fourier-ny = 144
    fourier-nz = 144
    ; Temperature coupling is on
    tcoupl = V-rescale
    tc-grps = system
    tau_t = 0.1
    ref_t = 300
    ; Pressure coupling is on
    pcoupl = Parrinello-Rahman
    pcoupltype = isotropic
    tau_p = 2.0
    ref_p = 1.0
    compressibility = 4.5e-5
    ; Periodic boundary conditions
    pbc = xyz
    ; Velocity generation
    gen_vel = no