在ubuntu22上安装cp2k,gcc默认版本gcc-11, cp2k使用版本2022.1
cp2k安装方法采用tool/toolchain内install_cp2k_toolchain.sh
安装前准备:已经安装intel oneapi的base(包含c和c++以及mkl等)和hpc(包含fortran编译器)的2023.2版本,自从2024年后,intel提供oneapi内c编译器为icx, c++为icpx,fortran为ifx,后者不再提供ifort,因此编译安装openmpi等包时,仅需提供CC=icx CXX=icpx FC=ifx等即可编译安装,但是测试后发现会和其它平台版本匹配上有很多错误,所以这里依旧安装了带有ifort的intel oneapi版本,即2023.2的base和hpc包。并以此安装了openmpi。
安装cp2k: 在tool/toolchain内
./install_cp2k_toolchain.sh --math-mode=mkl
会识别当前系统的gcc等,以及mip环境,还有intel的mkl等
随后安装一系列包,最后按照提示,使用 make命令后,会编译错误,如
compilation aborted for dbcsr_machine.F90 (code 1)
make[] : ***[...dbcsr_machine.o] 错误1
发现问题可能是exts/下的dbcsr的问题,会导致并行版本的cp2k如psmp等报错。发现只要使用oneapi mkl,则无法解决。
因此,最终使用openblas和不用intel编译器的openmpi成功安装cp2k。
./install_cp2k_toolchain.sh --math-mode=openblas
其中openblas安装错误,可以更换版本,个别包安装报错,一般都是gcc版本问题,对cp2k2022.1,建议使用gcc-12,个别报错可用gcc-11,最终make用gcc-12