Versions de GROMACS disponibles sur OLYMPE : version 2018.3 version 2020.2
Les versions disponibles sur Olympe
2023.3
Compilé avec gcc 9.3.0, openmpi 4.1.2.1 (mpi cuda-aware), cuda 11.0 et python 3.9.5
module purge module load gromacs/2023.3-ompi-gcc source $GMXRC [estana@olympelogin1 ~]$ module li Currently Loaded Modulefiles: 1) cuda/11.0 2) gcc/9.3.0 3) openmpi/gnu/4.1.2.1 4) gromacs/2023.3-ompi-gcc
gmxapi:
Pour utiliser l'api python gmxapi:
module purge module load gromacs/2023.3-ompi-gcc source $GMXRC module load conda/4.9.2 conda activate gmxapi-2023.3
2022.5
Compilé avec gcc 9.3.0, openmpi 4.1.2.1 (mpi cuda-aware), cuda 11.0 et python 3.9.5
module purge module load gromacs/2022.5-ompi-gcc source $GMXRC [manu@olympelogin1 ~]$ module li Currently Loaded Modulefiles: 1) cuda/11.0 2) gcc/9.3.0 3) openmpi/gnu/4.1.2.1 4) gromacs/2022.5-ompi-gcc
gmxapi:
Pour utiliser l'api python gmxapi:
module purge module load gromacs/2022.5-ompi-gcc source $GMXRC module load conda/4.9.2 conda activate gmxapi-2022.5
2022.3 + plumed + cp2k
Compilé avec gcc 9.3.0 et openmpi, linké avec les bibliothèques cp2k 2023.1 et plumed 2.8.1
module purge module load gromacs/2022.3-p2-cp2k source $GMXRC module li Currently Loaded Modulefiles: 1) gcc/9.3.0 2) gromacs/2022.3-p2-cp2k
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 ...