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édentesRévision précédente
Prochaine révision
Révision précédente
developpement:activites:integration:lammps4wheezy [2013/05/23 09:13] – [Compilation avec FFTW et OpenMPI] equemenedeveloppement:activites:integration:lammps4wheezy [2025/05/14 07:38] (Version actuelle) – modification externe 127.0.0.1
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 : (modification externe)