* [[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//