Outils pour utilisateurs

Outils du site


logiciels:gromacs

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
logiciels:gromacs [2015/11/05 16:05]
fabrep03 [Sur CPU]
logiciels:gromacs [2019/01/28 11:27] (Version actuelle)
fabrep03 [Performance]
Ligne 10: Ligne 10:
     * 5.0.2 avec support OpenMP et GPU NVidia (:!: compilé avec Intel composer 2013)     * 5.0.2 avec support OpenMP et GPU NVidia (:!: compilé avec Intel composer 2013)
     * 5.0.4, en simple et double précision, avec MPI ou sans     * 5.0.4, en simple et double précision, avec MPI ou sans
 +    * 2016 avec support OpenMP et MPI
 +    * 2018.4 avec support OpenMP et MPI
 +    * 2019 avec support OpenMP, MPI, nouvelles SIMD et GPU avec CUDA 10.0
  
 ===== Utilisation ===== ===== Utilisation =====
  
-Voir les manuels d'utilisation sur http://www.gromacs.org/Documentation/Manual+Voir les manuels d'utilisation sur http://manual.gromacs.org/documentation/current/index.html
  
-Pour une discussion sur la parallélisation :  http://www.gromacs.org/Documentation/Acceleration_and_parallelization 
 ==== Sélection de la version ==== ==== Sélection de la version ====
 Pour sélectionner la version voulue : utiliser les [[..:modules]] Pour sélectionner la version voulue : utiliser les [[..:modules]]
  
 Par exemple :  Par exemple : 
-  module load gromacs/5.0.2-mpi+  module load gromacs/2019
  
-:!: Si vous utilisez la version GPU, vous devez faire +Un seul fichier module existe. Le nom de l'exécutable change en fonction du mode de fonctionnement souhaité : 
-  module unload intel/composer +  * ''gmx'' pour la version sans MPI en simple précision 
-  module load intel/composer/xe_2013_sp1.2.144 +  * ''mdrun_mpi'' pour la version avec MPI et partition ''normal'' et assimilées 
-  module load gromacs/5.0.2-gpu +  * ''mdrun_avx2'' pour la version avec MPI et partition ''cluster-e5v4'' et assimilées 
- +  * ''mdrun_gpu'' pour la version GPU pour les K20 (non testée) 
-Pour la version 5.0.4, un seul fichier module existe. Le nom de l'exécutable change en fonction du mode de fonctionnement souhaité : +  * ''mdrun_gpu_avx2'' pour la version GPU pour les K40 (non testé) et les GTX1080TI
-  * ''mdrun'' pour la version sans MPI en simple précision +
-  * ''mdrun_d'' pour la version sans MPI en double précision +
-  * ''mdrun_mpi'' pour la version avec MPI en simple précision +
-  * ''mdrun_mpi_d'' pour la version avec MPI en double précision+
  
 ===== Performance ===== ===== Performance =====
-Les benchmarks suivants ont été réalisés sur une simulation de DHFR (une petite protéine), qui est couramment utilisée pour des benchmarks. Le système contient environ 23000 atomes. +La dernière version (2019 ou plus) est à privilégiercar les performances sont bien meilleures qu'avec les anciennes
-Il est possible de paralléliser de deux manières différentes : +
-  * avec MPIqui est performant pour partager un job au sein d'un ou plusieurs noeuds +
-  * avec openMP, qui peut être performant pour partager des coeurs au sein d'un processus MPI sur un même noeud. +
-Voici un tableau des performances relevées avec Gromacs 5.0.2 compilé avec les compilateurs intel :+
  
-  nb_coeurs      ntasks(MPI)     cpus-per-task(openMP)    GPU      Performance(ns/day) +J'ai effectué de nombreux benchmarks et on en tire des enseignements intéressantsLe mieux est de consulter la présentation de ces résultats de benchmark. M'écrire à [[gabin.fabre@unilim.fr]] pour en discuter.
-          2                                        1      0       10.955 +
-          4                                        1      0       14.817 +
-          8                                        1      0       21.747 +
-         16              16                          1      0       64.457 +
-         32              32                          1      0      110.067 +
-         64              64                          1      0      156.836 +
-        128             128                          1      0      268.282 +
-        256             256                          1      0      255.346 #ici, on dépasse la limite de 100 atomes par coeurÇa devrait mieux fonctionner avec un plus gros système +
-        256             128                          2      0      291.507 # pour un grand nombre de coeurs, il devient intéressant de diminuer le nombre de processus MPI au profit d'openMP +
-          8                                        8      1       82.490 +
-          8                                        4      2       82.217 # la puissance à 2 GPU est limitée par le nombre de coeurs +
-         16                                        8      2      118.781 +
-         16                                       16      1      112.530 # pas d'intérêt d'utiliser les 2 CPU pour 1 GPU, mais on constate également la limite du nombre de CPU. +
-          +
-Ne sont présentées ici que les configurations les plus rapides. En effet, sur CPU uniquement, openMP n'est efficace que pour des gros systèmes sur un grand nombre de coeurs. Avec moins de 256 coeurs, on constate une dégradation de performance quel que soit le nombre de threads openMP par processus MPI.+
  
-Avec des GPU, c'est différent. Il faut utiliser au moins un processus thread-MPI par GPU. Ensuite, on ajuste le nombre de threads openMP pour obtenir le nombre de coeurs voulu. En pratique, utiliser plus d'un thread-MPI par GPU dégrade la performance.+{{:logiciels:gromacs_2019_benchmarks.pdf|}}
  
-On constate qu'avec GPU on semble être limité par le nombre de CPU. À noter qu'il n'est pas possible d'utiliser plus que 16 coeurs (la partition Slurm ne contient que le noeud GPU). Ce comportement peut aussi être différent pour des plus gros sytèmes. 
 ===== Exemples de fichiers batch slurm ===== ===== Exemples de fichiers batch slurm =====
 ==== Sur CPU ==== ==== Sur CPU ====
logiciels/gromacs.1446735906.txt.gz · Dernière modification: 2015/11/05 16:05 de fabrep03