Installations optimisées de CP2K

Version la plus récente compilée avec compilateurs Intel et MKL sur les systèmes Debian

Il s'agit de la version du dépôt de développement CP2K (la plus complète au niveau des fonctionnalités).

L'installation ci-dessous a été faite à l'automne 2014 (sur la dernière révision du CP2K et avec les dernières versions de la suite Intel et OpenMPI disponibles à ce moment là).

Environnement de travail

Il faut d'abord charger l'environnement correspondant (Debian + Intel + OpenMPI) sur l'un des serveurs de compilation Debian :

   $ source /usr/share/modules/init/tcsh
   $ module use /applis/PSMN/Modules
   $ module load Base/psmn
   $ module load openmpi/1.6.4-intel-14.0.1

Download CP2K

   $ svn checkout svn://svn.code.sf.net/p/cp2k/code/trunk cp2k-devel-cic
   A    cp2k-devel-cic/basis_sets
   ...
   A    cp2k-devel-cic/potentials/mm_potentials/mathematica/FitPot.nb
   Révision 14631 extraite.

Etape de "configuration"

   $ cd cp2k-devel-cic/cp2k/arch

Modifier le fichier de configuration Linux-x86-64-intel-MKL.popt comme suit, afin de prendre correctement en compte les composantes BLAS, LAPACK et FFT de MKL (avec l'interface FFTW) :

$ cat Linux-x86-64-intel-MKL.popt
#
#
CC       = cc
CPP      = 
FC       = mpif90 
LD       = mpif90
AR       = ar -r
 
MKLROOT=/softs/intel/v13/mkl
INTEL_LIB = $(MKLROOT)/lib/intel64
LIBXC_DIR = /applis/PSMN/debian7/Libs/libXC/2.0.1/intel-14.0.1-avx
 
CPPFLAGS =
DFLAGS   = -D__MKL -D__FFTW3 -D__LIBXC2 -D__parallel \
	   -D__SCALAPACK 
CFLAGS   = $(DFLAGS) 
 
FCFLAGS  = $(DFLAGS) -O2 -g -traceback -fpp -free \
           -I$(MKLROOT)/include -I$(MKLROOT)/include/fftw
FCFLAGS2  = $(DFLAGS) -O1 -g -traceback -fpp -free \
           -I$(MKLROOT)/include -I$(MKLROOT)/include/fftw
FCFLAGS3  = $(DFLAGS) -O0 -g -traceback -fpp -free \
           -I$(MKLROOT)/include -I$(MKLROOT)/include/fftw
 
LDFLAGS  = $(FCFLAGS) -static-intel
 
LIBS     = $(INTEL_LIB)/libmkl_scalapack_lp64.a \
          -L${INTEL_LIB} -lmkl_blas95_lp64 \
          -L${INTEL_LIB} -lmkl_lapack95_lp64 \
	 -Wl,--start-group  $(INTEL_LIB)/libmkl_intel_lp64.a \
	 $(INTEL_LIB)/libmkl_sequential.a \
	 $(INTEL_LIB)/libmkl_core.a \
	 $(INTEL_LIB)/libmkl_blacs_openmpi_lp64.a -Wl,--end-group \
	 -lpthread -lm \
	 -L$(LIBXC_DIR)/lib -lxc \
 
 
OBJECTS_ARCHITECTURE = machine_intel.o
 
graphcon.o: graphcon.F
	$(FC) -c $(FCFLAGS2) $<
 
qs_vxc_atom.o: qs_vxc_atom.F
	$(FC) -c $(FCFLAGS2) $<   

Etape de "build"

   $ cd ../makefiles
   $ make -j 4 ARCH=Linux-x86-64-intel-MKL VERSION=popt

Cette étape peut durer quelques dizaines de minutes (un café bien mérité est possible …).

Le binaire est ainsi généré : $HOME/cp2k-devel-cic/cp2k/exe/Linux-x86-64-intel-MKL/cp2k.popt

Test de l'installation

On peut lancer un test rapide fourni dans CP2K directement sur le serveur de compilation :

   $ cd ../tests/QS/
   $ mpirun -np 2 $HOME/cp2k-devel-cic/cp2k/exe/Linux-x86-64-intel-MKL/cp2k.popt C.inp

Regarder par exemple le temps total (2.9 s pour le cas présent)

Test en conditions de production

Plusieurs jobs ont été exécutés sur des configurations fournies par des utilisateurs PSMN en utilisant les queues de production E5-2670. Les résultats ont montré un gain du temps de calcul par un facteur entre 5 et 6 par rapport aux installations génériques.

documentation/tools/cp2kmkl.txt · Dernière modification: 2020/08/25 17:58 (modification externe)