您的位置:首页 > 其它

intel编译器编译cp2k

2015-08-24 11:42 369 查看
编译cp2k记录

所遇到问题

MKL版本问题 

intel paralell composer xe 2011版本编译出错,在链接过程中某些函数缺失

而intel paralell composer xe 2013 MKL中不带 scalapack,直到安装2015版才解决这个问题

组件

cp2k 源码包 版本 2.6.1

svn checkout svn://svn.code.sf.net/p/cp2k/code/trunk cp2k

新版的makefile改动较大,但是仍然可以把旧版的makefile改过来用。

1、Inrel paralell composer xe 2015(composer_xe_2015.1.133) with MKL

source $(HOME)/intel/composerxe/bin/compilervars.sh intel64

2、mpich ( http://www.mpich.org/)
export CC=icc CXX=icpc F77=ifort FC=ifort

tar -xvzf mpich-3.1.4.tar.gz 

./configure --prefix=$(HOME)/mpich --enable-fc --enable-f77 --enable-cxx --enable-fortran

make

make install 

vi ~/.bashrc
PATH=$(HOME)/mpich/bin:$PATH
LD_LIBRARY_PATH=$(HOME)/mpich/lib:$LD_LIBRARY_PATH

3、fftw

tar -xvzf fftw-3.3.4.tar.gz

cd fftw-3.3.4

./configure --prefix=$(HOME)/fftw  --enable-debug --enable-mpi --enable-threads  --enable-openmp

make

make install

3、libint 

export CC=icc CXX=icpc F77=ifort FC=ifort

tar -xvzf libint-1.1.5.tar.gz

cd libint-1.1.5

./configure --prefix=$(HOME)/libint

make

make install

4、libxc

tar -xvzf libxc-2.0.2.tar.gz

cd libxc-2.0.2

./configure --prefix=$(HOME)/libxc

make

make install

vi arch/Linux-x86-64-intel.popt  注意修改$(home)的实际路径

---------

CC       = cc

CPP      =

FC       = mpif90

#FC       = mpifort 

LD       = mpif90

#LD       = mpifort

AR       = ar -r

MKLROOT = $(home)/intel/composerxe/mkl

DFLAGS   = -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -D__FFTMKL -D__FFTW3 -D__LIBINT -D__LIBXC2  -D__MKL

CPPFLAGS = -I$(home)/fftw/include -I$(home)/intel/composerxe/mkl/include \

           -I$(home)/libxc/include -I$(home)/libint/include -I$(MKLROOT)/include/fftw

#FCFLAGS  = $(DFLAGS) -I$(INTEL_INC) $(CPPFLAGS) -O3 -xW -heap-arrays 64 -funroll-loops -fpp -free

FCFLAGS  = $(DFLAGS)  $(CPPFLAGS) -O2 -heap-arrays 64 -funroll-loops -fpp -free

#FCFLAGS2 = $(DFLAGS) -I$(INTEL_INC) $(CPPFLAGS) -O1 -heap-arrays 64 -fpp -free

#LDFLAGS  = $(FCFLAGS) -i-static

LDFLAGS  = $(FCFLAGS)

LIBS = -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential  -lm -lstdc++ \

       -L$(home)/libxc/lib -lxc \

       -L$(home)/libint/lib -lderiv -lr12 -lint
  

#LIBS     = $(INTEL_LIB)/libscalapack.a \

#           $(INTEL_LIB)/libblacs_init.a \

#           $(INTEL_LIB)/libblacs.a \

#           $(INTEL_LIB)/libacml.a\

#           $(INTEL_LIB)/libacml_mv.a \

#           $(INTEL_LIB)/libfftw3.a

OBJECTS_ARCHITECTURE = machine_intel.o

graphcon.o: graphcon.F

        $(FC) -c $(FCFLAGS) $<

-----------

cd cp2k/makefiles

make -j 8 ARCH=Linux-x86-64-intel VERSION=popt clean

make -j 8 ARCH=Linux-x86-64-intel VERSION=popt distclean

make -j 8 ARCH=Linux-x86-64-intel VERSION=popt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cp2k