Ci-dessous, les différences entre deux révisions de la page.
developpement:activites:integration:cp2k4wheezy [2014/05/23 07:50] equemene [Compilation et exécution en mode parallèle] |
developpement:activites:integration:cp2k4wheezy [2015/01/07 10:04] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | * [[developpement:activites:integration:|Intégration]] | ||
- | <note important>En construction</note> | ||
- | |||
- | ====== CP2K et la Debian ====== | ||
- | |||
- | Depuis la Wheezy, CP2K est dans l'archive standard de la Debian : l'archive stable Wheezy propose la version 2.2.426. | ||
- | |||
- | Un rétroportage de la version 2.4 est possible à partir des archives Sid, moyennant le rétroportage de la dépendance ''libxc''. | ||
- | |||
- | Il peut cependant être nécessaire de disposer de sa propre version sur sa machine. | ||
- | |||
- | ====== Compilation et exécution de CP2K sous Debian Wheezy ====== | ||
- | |||
- | ===== Introduction à CP2K ===== | ||
- | |||
- | Le [[http://cp2k.berlios.de|site officiel]] de CP2K décrit de manière exhaustive les tenants et les aboutissants du projet. | ||
- | |||
- | ===== Récupération de l'environnement de compilation ===== | ||
- | |||
- | ==== Installation minimale ==== | ||
- | |||
- | En plus d'un compilateur fortran, CP2K a besoin d'un certain nombre de librairies FFTW3, ATLAS ou OpenBLAS : | ||
- | <code>sudo apt-get install gfortran libfftw3-dev liblapack-dev python-support bison flex byacc libopenblas-dev libatlas-dev libint-dev</code> | ||
- | |||
- | ==== Installation pour une compilation parallèle avec OpenMP ==== | ||
- | |||
- | Dans le cas d'une compilation parallèle avec OpenMP : | ||
- | <code>sudo apt-get install libgomp1</code> | ||
- | ==== Installation pour une compilation parallèle avec MPI ==== | ||
- | |||
- | <code>sudo apt-get install openmpi-bin libopenmpi-dev libblacs-mpi-dev libscalapack-mpi-dev libfftw3-mpi-dev </code> | ||
- | |||
- | ==== Rétroportage de la librairie XC ==== | ||
- | |||
- | Il est nécessaire de disposer de la ligne suivante dans son ''/etc/apt/sources.list'' :<code>deb-src http://ftp.de.debian.org/debian/ sid main contrib non-free</code> | ||
- | |||
- | <code>apt-get source libxc | ||
- | sudo apt-get build-dep libxc | ||
- | cd libxc-2.0.2 | ||
- | debuild | ||
- | cd .. | ||
- | sudo dpkg -i libxc1_2.0.2-1_amd64.deb libxc-dev_2.0.2-1_amd64.deb | ||
- | </code> | ||
- | |||
- | |||
- | ===== Compilation de CP2K ===== | ||
- | |||
- | ==== Récupération des sources ==== | ||
- | |||
- | Deux méthodes pour récupérer les sources de CP2K : le téléchargement via CVS et le téléchargement direct de l'archive construite quotidiennement : | ||
- | |||
- | - Téléchargement par SVN de la branche de développement :<code> | ||
- | cd /opt | ||
- | svn checkout svn://svn.code.sf.net/p/cp2k/code/trunk cp2k | ||
- | mv cp2k cp2k-$(date "+%Y%m%d") | ||
- | ln -s cp2k-$(date "+%Y%m%d") cp2k | ||
- | </code> | ||
- | - Téléchargement par SVN de la branche 2.5 :<code> | ||
- | cd /opt | ||
- | svn checkout svn://svn.code.sf.net/p/cp2k/code/branches/cp2k-2_5-branch cp2k-2.5 | ||
- | ln -s cp2k-2.5/cp2k cp2k | ||
- | </code> | ||
- | - Téléchargement de l'archive 2.5.1 :<code>wget -O /root/cp2k-2.5.1.tar.bz2 http://sourceforge.net/projects/cp2k/files/cp2k-2.5.1.tar.bz2/download | ||
- | cd /opt | ||
- | tar jxf /root/cp2k-2.5.1.tar.bz2 | ||
- | ln -s cp2k-2.5.1 cp2k | ||
- | </code> | ||
- | |||
- | Etablissement d'une variable pour nous faciliter la tâche | ||
- | <code>cd cp2k | ||
- | export CP2K_HOME=$(pwd) | ||
- | </code> | ||
- | ==== Compilation et exécution en mode "Série" ==== | ||
- | |||
- | === Compilation en mode série === | ||
- | |||
- | Les ''Makefile'' disponibles dans le dossier ''$CP2K_HOME/makefiles'' ne sont par directement exploitables en Debian Wheezy. | ||
- | |||
- | De plus, la Wheezy intègre maintenant deux versions complètes de [[http://www.netlib.org/blas/|BLAS]] : [[http://math-atlas.sourceforge.net/|ATLAS]] et [[http://www.openblas.net/|OpenBLAS]]. OpenBLAS est l'héritier de [[http://www.tacc.utexas.edu/tacc-projects/gotoblas2/|GotoBLAS]] et permet un usage très efficace des coeurs au sein d'un même noeud. | ||
- | |||
- | Les ''Makefile'' [[http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-OpenBLAS.sopt|Linux-amd64-Debian-OpenBLAS.sopt]] et [[http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-ATLAS.sopt|Linux-amd64-Debian-ATLAS.sopt]] ont été adaptés pour exploiter le socle Debian Wheezy. | ||
- | |||
- | == Pour l'utilisation de OpenBLAS == | ||
- | |||
- | <code> | ||
- | wget -O $CP2K_HOME/arch/Linux-amd64-Debian-OpenBLAS.sopt http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-OpenBLAS.sopt | ||
- | cd $CP2K_HOME/makefiles | ||
- | make distclean | ||
- | time make -j8 ARCH=Linux-amd64-Debian-OpenBLAS VERSION=sopt | ||
- | </code> | ||
- | |||
- | == Pour l'utilisation de ATLAS == | ||
- | <code> | ||
- | wget -O $CP2K_HOME/arch/Linux-amd64-Debian-ATLAS.sopt http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-ATLAS.sopt | ||
- | cd $CP2K_HOME/makefiles | ||
- | make distclean | ||
- | time make -j8 ARCH=Linux-amd64-Debian-ATLAS VERSION=sopt | ||
- | </code> | ||
- | ==== Compilation et exécution en mode parallèle ==== | ||
- | |||
- | === Compilation en mode OpenMP === | ||
- | |||
- | C'est ici que vont servir les paquets OpenMPI, Blacs et Scalapack. | ||
- | |||
- | Les ''Makefile'' [[http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-OpenBLAS.ssmp|Linux-amd64-Debian-OpenBLAS.ssmp]] et [[http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-ATLAS.ssmp|Linux-amd64-Debian-ATLAS.ssmp]] ont été adaptés pour exploiter le socle Debian Wheezy. | ||
- | |||
- | == Pour l'utilisation de OpenBLAS == | ||
- | <code> | ||
- | cd $CP2K_HOME/makefiles | ||
- | wget -O $CP2K_HOME/arch/Linux-amd64-Debian-OpenBLAS.ssmp http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-OpenBLAS.ssmp | ||
- | time make -j4 ARCH=Linux-amd64-Debian-OpenBLAS VERSION=ssmp | ||
- | </code> | ||
- | |||
- | == Pour l'utilisation de ATLAS == | ||
- | <code> | ||
- | cd $CP2K_HOME/makefiles | ||
- | wget -O $CP2K_HOME/arch/Linux-amd64-Debian-ATLAS.ssmp http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-ATLAS.ssmp | ||
- | time make -j4 ARCH=Linux-amd64-Debian-ATLAS VERSION=ssmp | ||
- | </code> | ||
- | |||
- | === Compilation en mode MPI === | ||
- | |||
- | C'est ici que vont servir les paquets OpenMPI, Blacs et Scalapack. | ||
- | |||
- | Les ''Makefile'' [[http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-OpenBLAS.popt|Linux-amd64-Debian-OpenBLAS.popt]] et [[http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-ATLAS.popt|Linux-amd64-Debian-ATLAS.popt]] ont été adaptés pour exploiter le socle Debian Wheezy. | ||
- | |||
- | == Pour l'utilisation de OpenBLAS == | ||
- | <code> | ||
- | cd $CP2K_HOME/makefiles | ||
- | wget -O $CP2K_HOME/arch/Linux-amd64-Debian-OpenBLAS.popt http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-OpenBLAS.popt | ||
- | time make -j4 ARCH=Linux-amd64-Debian-OpenBLAS VERSION=popt | ||
- | </code> | ||
- | |||
- | == Pour l'utilisation de ATLAS == | ||
- | <code> | ||
- | cd $CP2K_HOME/makefiles | ||
- | wget -O $CP2K_HOME/arch/Linux-amd64-Debian-ATLAS.popt http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-ATLAS.popt | ||
- | time make -j4 ARCH=Linux-amd64-Debian-ATLAS VERSION=popt | ||
- | </code> | ||
- | |||
- | mpilation en mode hybride OpenMP/MPI === | ||
- | |||
- | C'est ici que vont servir les paquets OpenMP, OpenMPI, Blacs et Scalapack. | ||
- | |||
- | Les ''Makefile'' [[http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-OpenBLAS.psmp|Linux-amd64-Debian-OpenBLAS.psmp]] et [[http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-ATLAS.psmp|Linux-amd64-Debian-ATLAS.psmp]] ont été adaptés pour exploiter le socle Debian Wheezy. | ||
- | |||
- | == Pour l'utilisation de OpenBLAS == | ||
- | <code> | ||
- | cd $CP2K_HOME/makefiles | ||
- | wget -O $CP2K_HOME/arch/Linux-amd64-Debian-OpenBLAS.psmp http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-OpenBLAS.psmp | ||
- | time make -j4 ARCH=Linux-amd64-Debian-OpenBLAS VERSION=psmp | ||
- | </code> | ||
- | |||
- | == Pour l'utilisation de ATLAS == | ||
- | <code> | ||
- | cd $CP2K_HOME/makefiles | ||
- | wget -O $CP2K_HOME/arch/Linux-amd64-Debian-ATLAS.psmp http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/CP2K/Linux-amd64-Debian-ATLAS.psmp | ||
- | time make -j4 ARCH=Linux-amd64-Debian-ATLAS VERSION=psmp | ||
- | </code> | ||
- | ===== Exécution d'un exemple ===== | ||
- | |||
- | ==== Exécution d'un exemple en mode série ==== | ||
- | |||
- | |||
- | |||
- | ==== Exécution d'un exemple en mode MPI ==== | ||
- | |||
- | Lancement d'un exemple : <code> | ||
- | cd $CP2K_HOME/tests/Fist | ||
- | mpirun.openmpi -x OMP_NUM_THREADS=1 -np 8 $CP2K_HOME/exe/Linux-amd64-Debian-OpenBLAS/cp2k.popt al2o3.inp | ||
- | </code> | ||
- | |||
- | |||
- | --- //[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] 2014/05/21 15:05// |