Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
documentation:tools:cp2kmkl [2015/04/28 02:47] – créée cicalugadocumentation:tools:cp2kmkl [2020/08/25 15:58] – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
-....+====== Installations optimisées de CP2K ====== 
 + 
 +{{INLINETOC}} 
 +===== 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 : 
 + 
 +<code bash>  
 +   $ 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 
 +</code> 
 + 
 +==== Download CP2K ==== 
 + 
 +<code bash>  
 +   $ svn checkout svn://svn.code.sf.net/p/cp2k/code/trunk cp2k-devel-cic 
 +      cp2k-devel-cic/basis_sets 
 +   ... 
 +      cp2k-devel-cic/potentials/mm_potentials/mathematica/FitPot.nb 
 +   Révision 14631 extraite. 
 +</code> 
 + 
 +==== Etape de "configuration" ==== 
 + 
 +<code bash>  
 +   $ cd cp2k-devel-cic/cp2k/arch 
 +</code> 
 + 
 +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) :  
 + 
 +<code bash>  
 +$ 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) $<    
 +</code> 
 + 
 +==== Etape de "build" ==== 
 + 
 +<code bash>  
 +   $ cd ../makefiles 
 +   $ make -j 4 ARCH=Linux-x86-64-intel-MKL VERSION=popt 
 +</code> 
 + 
 +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 : 
 + 
 +<code bash>  
 +   $ cd ../tests/QS/ 
 +   $ mpirun -np 2 $HOME/cp2k-devel-cic/cp2k/exe/Linux-x86-64-intel-MKL/cp2k.popt C.inp 
 +</code> 
 + 
 +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