CP2K-2023的oneapi/2022.3.1编译

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

关于cp2k的编译安装问题,网上大多数都推荐的是toolchain安装方法。最近因为有需求所以使用oneapi/2022.3.1进行编译,这里做了使用oneapi来编译cp2k的尝试,供大家参考。(本人的系统是CentOS 7,查询了一下OneAPI最新支持的版本是2022.3.1,可以处理内存泄漏问题)

以下所用的库也都是用oneapi/2022.3.1进行编译,编译后的库都已经生成modulefile文件,在编译cp2k时直接去加载module
(后续科研软件的编译也会在微信公众号上更新,请多多关注)
在这里插入图片描述

一、cmake-3.26.3

wget https://www.cp2k.org/static/downloads/cmake-3.26.3-linux-x86_64.sh --no-check-certificate

bash cmake-3.26.3-Linux-x86_64.sh

vim .bashrc

export PATH=/tmp/hehr/cmake-3.26.3-linux-x86_64/bin:$PATH

source .bashrc

(这里我生成了module,如果本地运行可以采用这种办法)

二、libxc-6.2.2

#download source code

wget https://www.cp2k.org/static/downloads/libxc-6.2.2.tar.gz -no-check-certificate

tar -xvf libxc-6.2.2.tar.gz

#create and enter build folder

mkdir build && cd build

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/hehr/software/libxc \

-DBUILD_SHARED_LIBS=NO \

-DCMAKE_C_COMPILER=icc \

-DCMAKE_Fortran_COMPILER=ifort \

-DCMAKE_INSTALL_LIBDIR=lib \

-DENABLE_FORTRAN=ON -DENABLE_PYTHON=OFF -DDISABLE_LXC=ON -DBUILD_TESTING=NO …

(这里用cmake一定是cmake-3.26以上,我是按CP2K里推荐的安装的cmake,否则会编译报错,提示cmake版本过低)

#build

make -j 16

三、elpa-2022.11.001

#download source code
wget https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/2022.11.001/elpa-2022.11.001.tar.gz

tar -xvf elpa-2022.11.001.tar.gz

#create and enter build folder

cd elpa-2022.11.001

mkdir -p build

cd build

module load oneapi/2022.3.1

#config build options

#my platform is icelake-server, which supports AVX512# you may set --prefix to customize installation path

…/configure CXX=icx FC=mpiifort CC=mpiicc FCFLAGS=“-O3 -xCORE-AVX512” CFLAGS=“-O3 -xCORE-AVX512” --enable-option checking=fatal \ SCALAPACK_LDFLAGS="-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential \

-lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm -Wl,-rpath,$MKL_ROOT/lib/intel64" \

SCALAPACK_FCFLAGS="-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential \

-lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm -I$MKLROOT/include/intel64/lp64" \

–enable-avx2 --enable-avx512 --with-mpi=yes

#build

make -j 32

#test (Optional)

make check

这里需要指定MKLROOT的目录,否则编译过程中会显示找不到部分库文件

四、 plumed-2.8.2

#download source code

wget https://www.cp2k.org/static/downloads/plumed-src-2.8.2.tgz --no-check-certificatetar

tar -xvf plumed-src-2.8.2.tgz

cd plumed-2.8.2

#config build options

./configure FC=mpiifort CC=mpiicc CXX=mpiicpc CXXFLAGS=“-O3 -mtune=icelake-server” --enable-mpi LDFLAGS=“-L M K L R O O T / l i b / i n t e l 64 − l m k l s c a l a p a c k l p 64 − l m k l i n t e l l p 64 − l m k l s e q u e n t i a l − l m k l c o r e − l m k l b l a c s i n t e l m p i l p 64 − l p t h r e a d − l m " C P P F L A G S = " − I MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm" CPPFLAGS="-I MKLROOT/lib/intel64lmklscalapacklp64lmklintellp64lmklsequentiallmklcorelmklblacsintelmpilp64lpthreadlm"CPPFLAGS="IMKLROOT/include”

#build

make -j 16

五、cp2k-2023.2

1.cd /tmp/hehr/cp2k-2023.2/toos/toolchain

然后修改下面这个文件:

scripts/generate_arch_files.sh 第42 行有bug, $(TARGET_CPU) 要改成 ${TARGET_CPU},否则会报错

echo ‘’ > scripts/get_openblas_arch.sh

2.准备安装环境

module load dev/oneapi/2022.3.1 dev/cmake/3.26.3 lib/elpa/2022.11.001 lib/libxc/6.2.2 lib/plumed/2.8.2

./install_cp2k_toolchain.sh --target-cpu=icelake-server --mpi-mode=intelmpi --math-mode=mkl --with-intel=system --with-intelmpi=system --with-libxc=system --with-libint=install --with-mkl=system --with-elpa=system --with-plumed=system --with-cmake=system --with-sirius=no --with-openblas=no --with-cosma=no

如果一些包下载不下来,就手动下载放到 ./build 目录,如果是自带脚本下载,建议开两个端口一个执行脚本,另一个进到build目录下进行软件下载

这步成功后退回项目目录

cd …/…

3.编译

cp /tmp/hehr/cp2k-2023.2/tools/toolchain/install/arch/* arch/

source /tmp/hehr/cp2k-2023.2/tools/toolchain/install/setup

make -j48 ARCH=local VERSION=psmp

成功后把 exe/local 导出到 PATH就可以了

这里会有坑点,之前有编译过libint,库的编译是通过了,CP2K编译过不去,不要把所有库都独立编译会更合理

六、libint-v2.6.0

最后是libint编译(虽然没有用上)需要用官方方式进行编译

官网链接:https://github.com/cp2k/cp2k/issues/1810

#download

wget https://www.cp2k.org/static/downloads/libint-v2.6.0-cp2k-lmax-5.tgz --no-check-certificate

tar -xvf libint-v2.6.0-cp2k-lmax-5.tgz

cd libint-v2.6.0-cp2k-lmax-5

#config

CC=mpiicc CXX=mpiicc FC=mpiifort ./configure \

--with-cxx="mpiicc -O3 -xCORE-AVX512 -mtune=icelake-server -g1" \

--with-cxx-optflags="-O3 -xCORE-AVX512 -mtune=icelake-server -g1" \

--enable-fortran \

--with-pic 

#fix

sed -i -e “s/$(CXX) $(CXXFLAGS)/$(FC) $(FCFLAGS)/g” -e “s/$(FCLIBS) -o/$(FCLIBS) -lstdc++ -o/” fortran/Makefile

make -j 48

总结

以上就是要分享的内容,后面更新也会在微信公众号‘小何工坊’进行分享,请多多关注!!!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值