Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision Les deux révisions suivantes | |||
formation:insa2018gpu:insa2018gromacs4stretch [2018/11/26 17:09] equemene créée |
formation:insa2018gpu:insa2018gromacs4stretch [2018/11/26 18:24] equemene |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Compilation et exécution du programme Gromacs en mode GPU ====== | ||
+ | |||
+ | ===== Compilation du programme dans l'environnement du CBP ===== | ||
+ | |||
La recette pour compiler Gromacs avec un support GPU sur du Debian Stretch 9.0 est la suivante : | La recette pour compiler Gromacs avec un support GPU sur du Debian Stretch 9.0 est la suivante : | ||
+ | - Définition de la variable TIME pour la métrologie : <code>export TIME=$(cat '/etc/time_command.cfg') | ||
- Création du dossier utilisateur :<code>mkdir /local/$USER</code> | - Création du dossier utilisateur :<code>mkdir /local/$USER</code> | ||
- Placement dans le dossier créé :<code>cd /local/$USER</code> | - Placement dans le dossier créé :<code>cd /local/$USER</code> | ||
Ligne 13: | Ligne 18: | ||
- Compilation du programme en mode parallèle : <code>make -j 16 > GMX-Compile-$(date "+%Y%m%d-%H%M") 2>&1</code> | - Compilation du programme en mode parallèle : <code>make -j 16 > GMX-Compile-$(date "+%Y%m%d-%H%M") 2>&1</code> | ||
- Exécution des tests : <code>make check > GMX-Check-$(date "+%Y%m%d-%H%M") 2>&1 </code> | - Exécution des tests : <code>make check > GMX-Check-$(date "+%Y%m%d-%H%M") 2>&1 </code> | ||
- | - Installation du programme et ses dépendances : <code>make check > GMX-Install-$(date "+%Y%m%d-%H%M") 2>&1</code> | + | - Installation du programme et ses dépendances : <code>make install > GMX-Install-$(date "+%Y%m%d-%H%M") 2>&1</code> |
+ | |||
+ | ===== Exécution de l'exemple exploité par Nvidia dans l'environnement du CBP ===== | ||
+ | |||
+ | - Création du dossier de tests à la date du jour : <code>mkdir -p /local/$USER/tests-$(date "+%Y%m%d")</code> | ||
+ | - Placement dans le dossier créé : <code>cd /local/$USER/tests-$(date "+%Y%m%d")</code> | ||
+ | - Récupération des entrées Gromacs pour le test :<code>wget ftp://ftp.gromacs.org/pub/benchmarks/water_GMX50_bare.tar.gz</code> | ||
+ | - Expansion de l'archive récupérée : <code>tar xzf water_GMX50_bare.tar.gz</code> | ||
+ | - Passage dans le dossier de paramètres : <code>cd water-cut1.0_GMX50_bare/1536</code> | ||
+ | - Paramétrage de l'environnement : <code>source $GMXINSTALL/bin/GMXRC</code> | ||
+ | - Lancement de l'exemple sur GPU : | ||
+ | - Initialisation de GROMACS : <code>$GMXINSTALL/bin/gmx grompp -f pme.mdp</code> | ||
+ | - Lancement du calcul sur GPU : <code>/usr/bin/time $GMXINSTALL/bin/gmx mdrun -resethway -noconfout -nsteps 4000 -v -gpu_id 0 >$(echo $PWD | tr '/' '_')_$(date "+%Y%m%d-%H%M").out 2>&1</code> | ||
+ | - Lancement du code sur CPU : | ||
+ | - Effacement des fichiers créés :<code>find . -mtime -1 | grep -v $(echo $PWD | tr "/" "_") | grep '/' | xargs -I '{}' rm '{}'</code> | ||
+ | - Initialisation de GROMACS : <code>$GMXINSTALL/bin/gmx grompp -f pme.mdp</code> | ||
+ | - Lancement du calcul sur GPU : <code>/usr/bin/time $GMXINSTALL/bin/gmx mdrun -resethway -noconfout -nsteps 4000 -v -nb cpu >$(echo $PWD | tr '/' '_')_$(date "+%Y%m%d-%H%M").out 2>&1</code> | ||
+ | Les deux fichiers de sortie en ''*.out'' donnent les informations sur les exécutions et la métrologie associée. Un ''grep'' sur le mot ''Elapsed'' extrait les temps d'exécution sur GPU et CPU. | ||