Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| developpement:activites:integration:lammpsgpu4wheezy [2013/11/07 10:09] – [Téléchargement] equemene | developpement:activites:integration:lammpsgpu4wheezy [2013/11/08 08:14] (Version actuelle) – [Compilation avec FFTW et OpenMPI] equemene | ||
|---|---|---|---|
| Ligne 36: | Ligne 36: | ||
| - Récupération de l' | - Récupération de l' | ||
| svn co svn:// | svn co svn:// | ||
| - | - Etablissement d'un lien générique : < | + | - Etablissement d'un lien générique : < |
| + | ln -sf lammps-$(date " | ||
| La suite, c'est commun : | La suite, c'est commun : | ||
| Ligne 68: | Ligne 69: | ||
| ln -s Makefile.lammps.gfortran Makefile.lammps </ | ln -s Makefile.lammps.gfortran Makefile.lammps </ | ||
| - Compilation de la librairie AWPMD< | - Compilation de la librairie AWPMD< | ||
| + | sed -i " | ||
| make -f Makefile.openmpi clean | make -f Makefile.openmpi clean | ||
| make -f Makefile.openmpi | make -f Makefile.openmpi | ||
| Ligne 86: | Ligne 88: | ||
| # suspension d'un module très specifique | # suspension d'un module très specifique | ||
| make no-user-cuda | make no-user-cuda | ||
| - | # suspension | + | # suspension |
| make no-voronoi | make no-voronoi | ||
| make no-user-reaxc | make no-user-reaxc | ||
| make no-kim | make no-kim | ||
| + | make no-user-omp | ||
| </ | </ | ||
| ===== Compilation basique===== | ===== Compilation basique===== | ||
| Ligne 161: | Ligne 164: | ||
| < | < | ||
| cp Makefile.serial Makefile.cuda_fftw | cp Makefile.serial Makefile.cuda_fftw | ||
| - | sed -i " | + | sed -i " |
| - | sed -i " | + | sed -i " |
| cd $LAMMPSROOT/ | cd $LAMMPSROOT/ | ||
| make yes-asphere | make yes-asphere | ||
| Ligne 184: | Ligne 187: | ||
| < | < | ||
| sudo apt-get install -y libopenmpi-dev openmpi-bin libopenmpi1.3 openmpi-common | sudo apt-get install -y libopenmpi-dev openmpi-bin libopenmpi1.3 openmpi-common | ||
| - | sudo apt-get install -y fftw3 fftw-dev | + | sudo apt-get install -y libfftw3-3 |
| </ | </ | ||
| Ligne 194: | Ligne 197: | ||
| sed -i " | sed -i " | ||
| sed -i " | sed -i " | ||
| - | |||
| make -f Makefile.mpic++ clean | make -f Makefile.mpic++ clean | ||
| make -f Makefile.mpic++ | make -f Makefile.mpic++ | ||
| Ligne 200: | Ligne 202: | ||
| === Préparation du Makefile pour GPU === | === Préparation du Makefile pour GPU === | ||
| + | |||
| + | La librairie GPU doit être compilée en fonction du GPU à disposition : Nvidia fournit un tableau dans sa [[https:// | ||
| + | |||
| + | Ce qu'il faut retenir : | ||
| + | * Pour une carte Tesla | ||
| + | * sm_10 : basique | ||
| + | * sm_11 : opérations atomiques en mémoire globale | ||
| + | * sm_12 : opérations atomiques en mémoire partagée | ||
| + | * sm_13 : support de la double précision | ||
| + | * Pour une carte Fermi : | ||
| + | * sm_20 | ||
| + | * sm_21 | ||
| + | * Pour une carte Kepler : | ||
| + | * sm_30 | ||
| + | * sm_35 | ||
| + | |||
| + | Par exemple, une carte GTX Titan est équipé d'un circuit Kepler. Nous avons donc :< | ||
| + | </ | ||
| Si les composants sont ceux des paquets Debian Wheezy, bindés dans ''/ | Si les composants sont ceux des paquets Debian Wheezy, bindés dans ''/ | ||
| < | < | ||
| cd $LAMMPSROOT/ | cd $LAMMPSROOT/ | ||
| + | # Modification de la racine de CUDA | ||
| sed -i ' | sed -i ' | ||
| + | # Modification de l' | ||
| + | sed -i ' | ||
| + | # Modification du compilateur mpic++ (force a OpenMPI) | ||
| + | sed -i " | ||
| make -f Makefile.linux clean | make -f Makefile.linux clean | ||
| - | make -f Makefile.linux | + | make -j 4 -f Makefile.linux |
| ./ | ./ | ||
| </ | </ | ||
| Ligne 214: | Ligne 239: | ||
| < | < | ||
| cp Makefile.openmpi Makefile.cuda_openmpi | cp Makefile.openmpi Makefile.cuda_openmpi | ||
| - | sed -i " | + | sed -i " |
| - | sed -i " | + | sed -i " |
| + | sed -i " | ||
| cd $LAMMPSROOT/ | cd $LAMMPSROOT/ | ||
| make yes-asphere | make yes-asphere | ||
| Ligne 225: | Ligne 251: | ||
| < | < | ||
| - | make cuda_openmpi</ | + | make -j 4 cuda_openmpi</ |
| Si la compilation est réussie, un exécutable '' | Si la compilation est réussie, un exécutable '' | ||