GROMACS (OLYMPE)
Article mis en ligne le 11 juillet 2018
dernière modification le 11 septembre 2018
logo imprimer

Versions de GROMACS disponibles sur OLYMPE : version 2018.3

Version 2018.3

Compilé avec le compilateur intel, cuda 9.1 et openmpi

Faut-il utiliser les GPUs avec gromacs ?

Suivant les données que vous avez à traiter, il est utile - ou pas, d’utiliser les GPUS. Nos tests ont montré que :

  • Pour des jeux de données de moins de 500000 atomes, le gpu n’est pas utile, il peut même dégrader les performances.
  • Pour des jeux de données avec plus de 500000 atomes, il est indispensable d’utiliser les GPUS. Plus le nombre d’atomes est important, plus c’est utile. Par exemple pour 5 millions d’atomes, avec 4 nœuds volta on a les mêmes performances qu’avec 12 nœuds CPUs.
  • Surtout lorsqu’on utilise le GPU, la configuration la plus performante est celle qui utilise beaucoup de processus mpi, chaque procesuss ayant deux threads openmp. Il est même intéressant d’utiliser l’hyperthreading

PNG

Essayez avec vos données !

Surtout si vous devez utiliser gromacs plusieurs fois avec des jeux de données de taille comparable, il est utile des faire au préalables des "benchmarks". Pour cela, il est recommandé d’utiliser les switches suivants (voir aussi ici)

Exemples de scripts sbatch

Un script sbatch qui appelle les GPUs et qui tourne sur 1 nœud, 36 processus et 2 threads par processus :

Pour utiliser deux nœuds, on remplacera les deux lignes suivantes :

Un script sbatch qui utilise seulement les CPUs et qui tourne sur 4 nœuds, 144 processus et 2 threads par processus :

Vérifier que le job tourne correctement

Lorsque votre job gromacs est en état RUNNING, nous vous conseillons de vérifier que tout se passe correctement grâce à la commande :

Pour un appel gromacs tournant sur un nœud GPU on devrait avoir la sortie suivante (tronquée) :


On voit que :

  1. Les processus se répartissent correctement sur les cœurs des deux processeurs
  2. Les 4 GPUS sont utilisés (30 à 40% de taux d’utilisation)
  3. 30% de la mémoire des GPUs est utilisée
  4. Les GPUS exécutent du code venant des processus qui tournent sur les cœurs du processeur le plus proche (par exemple A,B,C,D,E,F,G,H,I sont exécuté par le CPU 0 et par le GPU 0)
  5. La mémoire du GPU est distribuée de manière équilibrée entre les processus

On peut comparer cette sortie à celle obtenue pour amber.

Autres versions de gromacs installées

Aucune autre version installée




Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.87.86
Version Escal-V4 disponible pour SPIP3.2 Hébergeur : INP Toulouse