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 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 :

  1. 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
  2. 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
  3. 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 BLAS : ATLAS et OpenBLAS. OpenBLAS est l'héritier de GotoBLAS et permet un usage très efficace des coeurs au sein d'un même noeud.

Les Makefile Linux-amd64-Debian-OpenBLAS.sopt et 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 Linux-amd64-Debian-OpenBLAS.ssmp et 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 Linux-amd64-Debian-OpenBLAS.popt et 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 Linux-amd64-Debian-OpenBLAS.psmp et 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 2014/05/21 15:05

developpement/activites/integration/cp2k4wheezy.txt · Dernière modification: 2015/01/07 10:04 (modification externe)