* [[developpement:activites:integration:|Intégration]] En construction ====== 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 : sudo apt-get install gfortran libfftw3-dev liblapack-dev python-support bison flex byacc libopenblas-dev libatlas-dev libint-dev ==== Installation pour une compilation parallèle avec OpenMP ==== Dans le cas d'une compilation parallèle avec OpenMP : sudo apt-get install libgomp1 ==== Installation pour une compilation parallèle avec MPI ==== sudo apt-get install openmpi-bin libopenmpi-dev libblacs-mpi-dev libscalapack-mpi-dev libfftw3-mpi-dev ==== Rétroportage de la librairie XC ==== Il est nécessaire de disposer de la ligne suivante dans son ''/etc/apt/sources.list'' :deb-src http://ftp.de.debian.org/debian/ sid main contrib non-free apt-get install pbuilder aptitude update cd /tmp apt-get source libxc sudo apt-get build-dep -y libxc cd libxc-2.* debuild cd .. sudo dpkg -i libxc*_amd64.deb ===== 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 : 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 - Téléchargement par SVN de la branche 2.5 : 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 - Téléchargement de l'archive 2.5.1 :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 Etablissement d'une variable pour nous faciliter la tâche cd cp2k export CP2K_HOME=$(pwd) ==== 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 == 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 == Pour l'utilisation de ATLAS == 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 ==== 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 == 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 == Pour l'utilisation de ATLAS == 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 === 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 == 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 == Pour l'utilisation de ATLAS == 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 === Compilation 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 == 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 == Pour l'utilisation de ATLAS == 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 ===== 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 : 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 --- //[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] 2014/05/21 15:05//