Raccourcis
Versions de GROMACS disponibles sur OLYMPE : version 2018.3 version 2020.2
Les versions disponibles sur Olympe
2021.3
Compilé avec gcc 9.3.0 et openmpi
module purge module load gromacs/2021.3-ompi source $GMXRC module li Currently Loaded Modulefiles: 1) intel/18.2 2) intelmpi/18.2 3) cmake/3.13.0 4) openmpi/gnu/4.0.2-gcc9.3.0 5) cuda/11.0 6) gcc/9.3.0 7) gromacs/2021.3-ompi
2020.5 plumed
Compilé avec le compilateur intel 19, cuda 10.0, intelmpi et le patch plumed, 2 fix605 Voir ici : https://github.com/deepmodeling/plumed2/tree/fix-605-HREX-gromacs/
module purge module load gromacs/2020.5-impi-p2-fix605 source $GMXRC
2020.2 plumed
module purge module load gromacs/2020.2-impi-p2.6.1 source $GMXRC module li Currently Loaded Modulefiles: 1) intel/18.2 4) gcc/7.3.0 2) intelmpi/18.2 5) plumed/2.6.1 3) cuda/10.1.105 6) gromacs/2020.2-impi-p2.6.1
2020.2
Compilé avec gcc 7.3.0 et openmpi
module purge module load gromacs/2020.2-ompi source $GMXRC module li Currently Loaded Modulefiles: 1) cuda/10.1.105 2) gcc/7.3.0 3) openmpi/gnu/2.0.2.10 4) gromacs/2020.2-ompi
2018.3
Compilé avec le compilateur intel, cuda 9.1 et openmpi
module purge module load gromacs/2018.3-ompi source $GMXRC module li 1) cuda/9.1.85.3 2) intel/17.1 3) openmpi/icc/2.0.2.10 4) gromacs/2018.3-ompi
Utilisation de gromacs avec les GPUs
Les tests ont montré que:
- Pour des jeux de données "petits" (moins de 500000 atomes), le gpu n’est pas utile, il peut même dégrader les performances.
- Pour des jeux de données "gros" (plus de 500000 atomes), les GPUS sont très utiles. Plus le nombre d’atomes est important, plus c’est utile.
- Lorsqu’on utilise le GPU, la configuration la plus performante est celle qui utilise beaucoup de processus mpi, chaque procesus ayant deux threads openmp. Il est même intéressant d’utiliser l’hyperthreading
Exemples de scripts sbatch
CPUs
#!/bin/sh #SBATCH -J "gromacs" #SBATCH -t 01:00:00 #SBATCH -N 4 #SBATCH -n 144 #SBATCH --cpus-per-task=2 module purge module load gromacs/2018.3-ompi source $GMXRC ulimit -s 10240 export OMP_NUM_THREADS=2 export OMP_PROC_BIND=true srun $(placement) mdrun_mpi ... jobinfo ${SLURM_JOBID}
GPUs
Un exemple de script sbatch qui utilise les 4 gpus d'un nœud volta:
#!/bin/sh #SBATCH -J "gromacs" #SBATCH -t 01:00:00 #SBATCH -N 1 #SBATCH -n 36 #SBATCH --cpus-per-task=2 #SBATCH --gres=gpu:4 module purge module load gromacs/2018.3-ompi source $GMXRC ulimit -s 10240 export OMP_NUM_THREADS=2 export OMP_PROC_BIND=true srun $(placement) mdrun_mpi ...