Benchmarking: CP2K

From Define Wiki
Revision as of 20:53, 8 October 2012 by David (talk | contribs)
Jump to navigation Jump to search

Instructions to build CP2K using the following:

  • OpenMPI 1.4.3 (OFED 1.5.4.1) built using the Intel Compilers (v12 and v13 tested)
  • Intel Fortran (v12 / v13)
  • CP2K 2.3
  • Tested on Centos 6.2

About CP2K

CP2K is a freely available (GPL) program, written in Fortran, to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different methods such as density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials, solid state, liquid, molecular and biological systems. CP2K, including its sources and pointers to the authors can be found at: http://cp2k.berlios.de/

Create the arch file

Contents of the arch/Linux-x86-64-intel.popt

INTEL_MKL=/share/apps/intel/composer_xe_2013.0.079/mkl
INTEL_INC=$(INTEL_MKL)/include/fftw
INTEL_LIB=$(INTEL_MKL)/lib/intel64

CC       = cc
CPP      =
FC       = mpif90
LD       = mpif90 
AR       = xiar -r

DFLAGS   = -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -D__FFTW3
CPPFLAGS =
FCFLAGS  = $(DFLAGS) -I$(INTEL_INC) -O3 -msse2 -heap-arrays 64 -funroll-loops -fpp -free
FCFLAGS2 = $(DFLAGS) -I$(INTEL_INC) -O1 -msse2 -heap-arrays 64 -fpp -free
LDFLAGS  = $(FCFLAGS) -I$(INTEL_INC)
LIBS     = -L$(INTEL_LIB) -lfftw3xf_intel \
           -L${INTEL_LIB} -I${INTEL_INC} -I${INTEL_INC}/intel64/lp64 -lmkl_blas95_lp64 \
           -L${INTEL_LIB} -I${INTEL_INC} -I${INTEL_INC}/intel64/lp64 -lmkl_lapack95_lp64 \
           ${INTEL_LIB}/libmkl_scalapack_lp64.a ${INTEL_LIB}/libmkl_solver_lp64_sequential.a \
           -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


OBJECTS_ARCHITECTURE = machine_intel.o

graphcon.o: graphcon.F
        $(FC) -c $(FCFLAGS2) $<

qs_vxc_atom.o: qs_vxc_atom.F
        $(FC) -c $(FCFLAGS2) $<