Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Dernière révision Les deux révisions suivantes | ||
formation:insa2018gpu:insa2018pkdgrav4stretch [2018/11/27 14:39] equemene |
formation:insa2018gpu:insa2018pkdgrav4stretch [2018/11/27 15:12] equemene |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | [[formation:insa2018gpu|Retour aux travaux pratiques]] | ||
+ | |||
====== Compilation de PKDGRAV3 ====== | ====== Compilation de PKDGRAV3 ====== | ||
Ligne 30: | Ligne 32: | ||
===== Compilation d'une version fonctionnelle ===== | ===== Compilation d'une version fonctionnelle ===== | ||
- | ===== Exécution d'une version fonctionnelle ===== | + | La recette pour compiler PKDGRAV3 ur 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 -p /local/$USER</code> | ||
+ | - Placement dans le dossier créé :<code>cd /local/$USER</code> | ||
+ | - Récupération du source <code>wget http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/pkdgrav-20181008.tgz</code> | ||
+ | - Expansion de l'archive : <code>tar xzf pkdgrav-20181008.tgz</code> | ||
+ | - Passage dans le dossier de l'archive : <code>cd pkdgrav-20181008</code> | ||
+ | - Création d'une variable positionnant la racine du source : <code>export PKDGRAV3=$PWD</code> | ||
+ | - Création d'un dossier de construction : <code>mkdir build</code> | ||
+ | - Passage dans le dossier de construction : <code>cd build</code> | ||
+ | - Construction des tâches de compilation : <code>CC=gcc-4.9 CXX=g++-4.9 cmake ..</code> | ||
+ | - Compilation du programme en mode parallèle : <code>make -j 16 > pkdgrav3-Compile-$(date "+%Y%m%d-%H%M") 2>&1</code> | ||
+ | ===== Exécution de l'exemple fourni dans l'environnement du CBP ===== | ||
+ | - Déplacement dans le dossier d'exemples : <code>cd $PKDGRAV3/examples</code> | ||
+ | - Lancement de l'exemple sur GPU : <code>/usr/bin/time ../build/pkdgrav3 cosmology.par > cosmology-$(date "+%Y%m%d-%H%M%S").out 2>&1</code> | ||
+ | - Préparation du lancement sur CPU : <code>rm .lockfile example.*</code> | ||
+ | - Lancement de l'exemple sur CPU : <code>/usr/bin/time ../build/pkdgrav3 -cqs 0 cosmology.par > cosmology-$(date "+%Y%m%d-%H%M%S").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. | ||