Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
formation:insa2020gpu:insa2020gromacs4buster [2020/12/06 11:45] equemene créée |
formation:insa2020gpu:insa2020gromacs4buster [2020/12/06 13:40] (Version actuelle) equemene [Exécution de l'exemple exploité par Nvidia dans l'environnement du CBP] |
||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
- Placement dans le dossier créé :<code>cd /local/$USER</code> | - Placement dans le dossier créé :<code>cd /local/$USER</code> | ||
- Récupération du source <code>wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-2019.3.tar.gz</code> | - Récupération du source <code>wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-2019.3.tar.gz</code> | ||
- | - Expansion de l'archive : <code>tar xzf gromacs-2018.1.tar.gz</code> | + | - Expansion de l'archive : <code>tar xzf gromacs-2019.3.tar.gz</code> |
- Définition d'une variable d'environnement pour ce dossier :<code>export GMXSRC=$PWD/gromacs-2019.3</code> | - Définition d'une variable d'environnement pour ce dossier :<code>export GMXSRC=$PWD/gromacs-2019.3</code> | ||
- | - Création d'un dossier de construction : <code>mkdir gromacs-2018.1_build</code> | + | - Création d'un dossier de construction : <code>mkdir gromacs-2019.3_build</code> |
- Définition d'une variable d'environnement pour ce dossier :<code>export GMXBUILD=$PWD/gromacs-2019.3_build</code> | - Définition d'une variable d'environnement pour ce dossier :<code>export GMXBUILD=$PWD/gromacs-2019.3_build</code> | ||
- | - Création d'un dossier d'installation : <code>mkdir gromacs-2018.1_install</code> | + | - Création d'un dossier d'installation : <code>mkdir gromacs-2019.3_install</code> |
- Définition d'une variable d'environnement pour ce dossier :<code>export GMXINSTALL=$PWD/gromacs-2019.3_install</code> | - Définition d'une variable d'environnement pour ce dossier :<code>export GMXINSTALL=$PWD/gromacs-2019.3_install</code> | ||
- Déplacement dans le dossier de construction : <code>cd $GMXBUILD</code> | - Déplacement dans le dossier de construction : <code>cd $GMXBUILD</code> | ||
- | - Construction des tâches de compilation : <code>CC=gcc-7 CXX=g++-7 CPP=cpp-7 cmake $GMXSRC -DGMX_OPENMP=ON -DGMX_GPU=ON -DGMX_BUILD_OWN_FFTW=ON -DGMX_PREFER_STATIC_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$GMXINSTALL</code> | + | - Définition des outils des compilation : <code>export CC=/usr/bin/gcc-7 |
+ | export CXX=/usr/bin/g++-7 | ||
+ | export CPP=/usr/bin/cpp-7</code> | ||
+ | - Construction des tâches de compilation : <code>cmake $GMXSRC -DGMX_OPENMP=ON -DGMX_GPU=ON -DGMX_BUILD_OWN_FFTW=ON -DGMX_MPI=on -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$GMXINSTALL</code> | ||
- 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> | ||
Ligne 32: | Ligne 35: | ||
- Lancement de l'exemple sur GPU : | - Lancement de l'exemple sur GPU : | ||
- Initialisation de GROMACS : <code>$GMXINSTALL/bin/gmx-mpi grompp -f pme.mdp</code> | - Initialisation de GROMACS : <code>$GMXINSTALL/bin/gmx-mpi grompp -f pme.mdp</code> | ||
- | - Lancement du calcul sur GPU : <code>/usr/bin/time $GMXINSTALL/bin/gmx-mpi mdrun -resethway -noconfout -nsteps 4000 -v -gpu_id 0 >$(echo $PWD | tr '/' '_')_$(date "+%Y%m%d-%H%M").out 2>&1</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 : | - Lancement du code sur CPU : | ||
- Effacement des fichiers créés par la simulation sur GPU :<code>find . -mtime -1 | grep -v $(echo $PWD | tr "/" "_") | grep '/' | xargs -I '{}' rm '{}'</code> | - Effacement des fichiers créés par la simulation sur GPU :<code>find . -mtime -1 | grep -v $(echo $PWD | tr "/" "_") | grep '/' | xargs -I '{}' rm '{}'</code> | ||
- | - Initialisation de GROMACS : <code>$GMXINSTALL/bin/gmx-mpi grompp -f pme.mdp</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-mpi mdrun -resethway -noconfout -nsteps 4000 -v -nb cpu >$(echo $PWD | tr '/' '_')_$(date "+%Y%m%d-%H%M").out 2>&1</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. | 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. | ||