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
developpement:activites:integration:lammps4wheezy [2013/05/23 11:13]
equemene [Compilation avec FFTW et OpenMPI]
developpement:activites:integration:lammps4wheezy [2015/01/07 10:04] (Version actuelle)
Ligne 1: Ligne 1:
   * [[developpement:​activites:​integration|Integration]]   * [[developpement:​activites:​integration|Integration]]
  
-====== Installation de LAMMPS sur Debian Wheezy ======+====== Installation de LAMMPS ​sur GPU sur Debian Wheezy ====== 
 + 
 +<note important>​En construction</​note>​
  
 Lammps est disponible en [[http://​packages.debian.org/​stable/​main/​lammps|version 20120615]] dans la distribution Wheezy. ​ Lammps est disponible en [[http://​packages.debian.org/​stable/​main/​lammps|version 20120615]] dans la distribution Wheezy. ​
  
 Lammps est également disponible dans sa [[http://​packages.debian.org/​unstable/​main/​lammps|version 20130503]] dans la Sid au 22 mai 2013 : un rétroportage simple suffit à sa compilation. Lammps est également disponible dans sa [[http://​packages.debian.org/​unstable/​main/​lammps|version 20130503]] dans la Sid au 22 mai 2013 : un rétroportage simple suffit à sa compilation.
- 
-Il peut cependant être nécessaire de le recompiler soi-même pour dans le cadre d'​applications très spécifiques. 
  
 ===== Préparation du système ===== ===== Préparation du système =====
  
 <​code>​ <​code>​
-apt-get install+apt-get install ​-y gfortran g++ libquadmath0 libblas3 liblapack3 libgfortran3 liblapack-dev openmpi-bin libopenmpi-dev
 </​code>​ </​code>​
-===== Téléchargement ​& préparation ​=====+ 
 +===== Téléchargement ​ =====
  
 <note important>​Toutes les commandes sont à effectuer comme ''​root''</​note>​ <note important>​Toutes les commandes sont à effectuer comme ''​root''</​note>​
  
 +Alors, à l'​origine,​ c'​était plus simple de récupérer l'​archive et de compiler LAMMPS à partir des sources récupérées dans ce bloc... Mais la version du 30 septembre archivée ne COMPILE PAS DU TOUT !
 +
 +Par la récupération de l'​archive directement,​ plutôt déconseillé :
   - Récupération de la [[http://​lammps.sandia.gov/​download.html|dernière version]] sur le site de Sandia : <​code>​cd /root   - Récupération de la [[http://​lammps.sandia.gov/​download.html|dernière version]] sur le site de Sandia : <​code>​cd /root
 wget -m -nd http://​lammps.sandia.gov/​tars/​lammps.tar.gz</​code>​ wget -m -nd http://​lammps.sandia.gov/​tars/​lammps.tar.gz</​code>​
   - Ouverture de l'​archive :<​code>​cd /opt   - Ouverture de l'​archive :<​code>​cd /opt
-tar xvf /​root/​lammps.tar.gz</​code>​ +tar xzf /​root/​lammps.tar.gz</​code>​ 
-  - Changement des droits : <​code>​chown -R root.root lammps-*</​code>​ +  - Changement des droits : <​code>​chown -R root.root ​$(tar tzf /root/lammps.tar.gz | tail -1 | awk -F'/'​ '{ print $1 }')</​code>​ 
-  - Etablissement d'un lien générique : <​code>​ln -$(tar tzf /​root/​lammps.tar.gz | tail -1 | awk -F'/'​ '{ print $1 }') lammps</​code>​ +  - Etablissement d'un lien générique : <​code>​[ -h lammps ] && rm lammps 
-  - Passer dans l'archive ​:<​code>​cd ​$(tar tzf /root/lammps.tar.gz | tail -1 | awk -F'/' ​'{ print $1 }')</​code>​+ln -sf $(tar tzf /​root/​lammps.tar.gz | tail -1 | awk -F'/'​ '{ print $1 }') lammps</​code>​ 
 + 
 + 
 +Par la récupération de l'​arbre SVN, plutôt conseillé maintenant : 
 +  - Récupération de l'arbre SVN sur le site de Sandia ​: <​code>​cd /opt 
 +svn co svn://svn.icms.temple.edu/​lammps-ro/trunk lammps-$(date "​+%Y%m%d"​)<​/code> 
 +  - Etablissement d'un lien générique : <​code>​[ -h lammps ] && rm lammps 
 +ln -sf lammps-$(date "​+%Y%m%d"​lammps</​code>​ 
 + 
 +La suite, c'est commun : 
 +  - Passer dans l'​archive :<​code>​cd lammps</​code>​
   - Paramétrer une variable de racine pour Lammps : <​code>​export LAMMPSROOT=$(pwd)</​code>​   - Paramétrer une variable de racine pour Lammps : <​code>​export LAMMPSROOT=$(pwd)</​code>​
   - Préparer le MPI local :<​code>​cd $LAMMPSROOT/​src/​STUBS   - Préparer le MPI local :<​code>​cd $LAMMPSROOT/​src/​STUBS
Ligne 30: Ligne 44:
 make make
 </​code>​ </​code>​
-  - Préparer les librairies ​complémentaires :<​code>​ +===== Préparation des librairies ​connexes ​ ===== 
-Compilation de la librairie MEAM+ 
 +  - Compilation de la librairie MEAM:<​code>​
 cd $LAMMPSROOT/​lib/​meam cd $LAMMPSROOT/​lib/​meam
 make -f Makefile.gfortran clean make -f Makefile.gfortran clean
 make -f Makefile.gfortran make -f Makefile.gfortran
 mv Makefile.lammps Makefile.lammps.intel mv Makefile.lammps Makefile.lammps.intel
-ln -s Makefile.lammps.gfortran Makefile.lammps +ln -s Makefile.lammps.gfortran Makefile.lammps</​code>​ 
- +  ​- ​Compilation de la librairie ​COLVAR<​code>​
-Compilation de la librairie ​COLVARS+
 cd $LAMMPSROOT/​lib/​colvars cd $LAMMPSROOT/​lib/​colvars
 make -f Makefile.g++ clean make -f Makefile.g++ clean
-make -f Makefile.g++ +make -f Makefile.g++</​code>​ 
- +  ​- ​Compilation de la librairie POEMS<​code>​
-Compilation de la librairie POEMS+
 cd $LAMMPSROOT/​lib/​poems cd $LAMMPSROOT/​lib/​poems
 make -f Makefile.g++ clean make -f Makefile.g++ clean
-make -f Makefile.g++ +make -f Makefile.g++</​code>​ 
- +  ​- ​Compilation de la librairie REAX :<​code>​
-Compilation de la librairie REAX+
 cd $LAMMPSROOT/​lib/​reax cd $LAMMPSROOT/​lib/​reax
 make -f Makefile.gfortran clean make -f Makefile.gfortran clean
 make -f Makefile.gfortran make -f Makefile.gfortran
 mv Makefile.lammps Makefile.lammps.intel mv Makefile.lammps Makefile.lammps.intel
-ln -s Makefile.lammps.gfortran Makefile.lammps ​  +ln -s Makefile.lammps.gfortran Makefile.lammps ​</​code>​ 
-        +  ​- ​Compilation de la librairie AWPMD<​code>​cd $LAMMPSROOT/​lib/​awpmd 
-Compilation de la librairie AWPMD +sed -i "​s/​mpic++/​mpic++.openmpi/​g"​ Makefile.openmpi
-cd $LAMMPSROOT/​lib/​awpmd+
 make -f Makefile.openmpi clean make -f Makefile.openmpi clean
 make -f Makefile.openmpi make -f Makefile.openmpi
- 
 </​code>​ </​code>​
-  - Compiler les éléments indispensables pour exécuter les exemples :<​code>​cd $LAMMPSROOT/​src+ 
 +===== Activation des modules ===== 
 + 
 +Compiler les éléments indispensables pour exécuter les exemples :<​code>​cd $LAMMPSROOT/​src
 # activation de tous les modules # activation de tous les modules
 make yes-all make yes-all
 # suspension d'un module très specifique # suspension d'un module très specifique
-make no-gpu 
 make no-user-cuda make no-user-cuda
-# suspension ​d'un module ​qui necessite une librairie supplementaire+# suspension ​des modules ​qui font peter la compilation :-\
 make no-voronoi make no-voronoi
 make no-user-reaxc make no-user-reaxc
 make no-kim make no-kim
 +make no-user-omp
 +make no-gpu
 </​code>​ </​code>​
  
 ===== Compilation basique===== ===== Compilation basique=====
 +
 +=== Preparation de la librairie ATC couplée ​ ===
  
 <​code>​ <​code>​
-# Preparation de la librairie ATC complée avec MPI 
 cd $LAMMPSROOT/​lib/​atc cd $LAMMPSROOT/​lib/​atc
 sed -e '​s/​\-O\ \-g/\-O\ \-g \-fpermissive/'​ -i~ Makefile.serial sed -e '​s/​\-O\ \-g/\-O\ \-g \-fpermissive/'​ -i~ Makefile.serial
Ligne 82: Ligne 97:
 make -f Makefile.serial make -f Makefile.serial
 </​code>​ </​code>​
 +
 +=== Compilation sans MPI ===
  
 <​code>​ <​code>​
 cd $LAMMPSROOT/​src cd $LAMMPSROOT/​src
 +make yes-asphere
 +make yes-kspace
 # lancer la compilation # lancer la compilation
 make serial make serial
 </​code>​ </​code>​
  
-Si la compilation est réussie, un exécutable ​statique ​''​lmp_serial'',​ se trouve à la racine du dossier. +Si la compilation est réussie, un exécutable ''​lmp_cuda'',​ se trouve à la racine du dossier.
  
 ===== Compilation avec FFTW  ===== ===== Compilation avec FFTW  =====
  
-Installation préliminaire+=== Installation préliminaire ​=== 
 <​code>​ <​code>​
-sudo apt-get install -y fftw2 fftw-dev+sudo apt-get install -y fftw3 fftw-dev
 </​code>​ </​code>​
  
-Importation du Makefile [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​LAMMPS/​Makefile.fftw|Makefile.fftw]] dans le répertoire $LAMMPSROOT/​src/​MAKE :<​code>​cd $LAMMPSROOT/​src/MAKE + 
-cp Makefile.serial Makefile.fftw +=== Preparation de la librairie ATC couplée ​ === 
-sed -i "s/FFT_INC=/FFT_INC=\ -DFFT_FFTW/g" Makefile.fftw + 
-sed -i "s/FFT_LIB=/FFT_LIB=\ -lfftw/g" ​Makefile.fftw+<​code>​ 
 +cd $LAMMPSROOT/​lib/atc 
 +sed -e 's/\-O\ \-g/\-O\ \-g \-fpermissive/' -i~ Makefile.serial 
 +make -f Makefile.serial clean 
 +make -f Makefile.serial
 </​code>​ </​code>​
  
-Compilation ​ +=== Préparation du Makefile === 
-<​code>​cd $LAMMPSROOT/​src + 
-make fftw</​code>​+<​code>​cd $LAMMPSROOT/​src/MAKE 
 +cp Makefile.serial Makefile.cuda_fftw 
 +sed -i "​s/​FFT_INC\ =/FFT_INC\ =\ -DFFT_FFTW3/​g"​ Makefile.fftw 
 +sed -i "​s/​FFT_LIB\ =/FFT_LIB\ =\ -lfftw3/​g"​ Makefile.fftw 
 +cd $LAMMPSROOT/​src 
 +make yes-asphere 
 +make yes-kspace 
 +</​code>​ 
 + 
 +=== Compilation === 
 + 
 +<​code>​ 
 +# lancer la compilation 
 +make fftw 
 +</​code>​ 
 + 
 +Si la compilation est réussie, un exécutable ''​lmp_fftw'',​ se trouve à la racine du dossier.
  
-Si la compilation est réussie, un exécutable statique ''​lmp_fftw'',​ se trouve à la racine du dossier. 
 ===== Compilation avec FFTW et OpenMPI ===== ===== Compilation avec FFTW et OpenMPI =====
  
-Installation préliminaire+=== Installation préliminaire ​=== 
 <​code>​ <​code>​
 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 fftw2 fftw-dev+sudo apt-get install -y libfftw3-3  ​fftw-dev
 </​code>​ </​code>​
  
-Importation ​du Makefile pour ATC et compilation [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​LAMMPS/​Makefile.mpic++|Makefile.mpic++]] dans le répertoire ''​$LAMMPSROOT/​lib/​atc''​ :<​code>#​ Preparation de la librairie ATC complée ​avec MPI+=== Préparation ​du Makefile pour ATC === 
 + 
 +<​code>#​ Preparation de la librairie ATC couplée ​avec MPI
 cd $LAMMPSROOT/​lib/​atc cd $LAMMPSROOT/​lib/​atc
 cp Makefile.serial Makefile.mpic++ cp Makefile.serial Makefile.mpic++
Ligne 127: Ligne 168:
 </​code>​ </​code>​
  
-Importation ​du Makefile ​[[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​LAMMPS/​Makefile.openmpi|Makefile.openmpi]] dans le répertoire ''​$LAMMPSROOT/​src/​MAKE''​ :<​code>​cd $LAMMPSROOT/​src/​MAKE +=== Préparation ​du Makefile ​===
-mv Makefile.openmpi Makefile.openmpi.orig +
-wget http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​LAMMPS/​Makefile.openmpi</​code>​+
  
-Compilation ​+<​code>​cd $LAMMPSROOT/​src/​MAKE 
 +sed -i "​s/​mpic++/​mpic++.openmpi/​g"​ Makefile.openmpi 
 +sed -i "​s/​FFT_INC\ =/FFT_INC\ =\ -DFFT_FFTW3/​g"​ Makefile.openmpi 
 +sed -i "​s/​FFT_LIB\ =/FFT_LIB\ =\ -lfftw3/​g"​ Makefile.openmpi 
 +cd $LAMMPSROOT/​src 
 +make yes-asphere 
 +make yes-kspace 
 +</​code>​ 
 + 
 +=== Compilation ​=== 
 + 
 <​code>​cd $LAMMPSROOT/​src <​code>​cd $LAMMPSROOT/​src
-make openmpi</​code>​+make -j 4 openmpi</​code>​ 
 + 
 +Si la compilation est réussie, un exécutable ''​lmp_openmpi'',​ se trouve à la racine du dossier.
  
-Si la compilation est réussie, un exécutable statique ''​lmp_openmpi'',​ se trouve à la racine du dossier. 
 ===== Vérification de fonctionnement ===== ===== Vérification de fonctionnement =====
  
developpement/activites/integration/lammps4wheezy.1369300408.txt.gz · Dernière modification: 2015/01/07 10:04 (modification externe)