计算化学公社
标题: CP2K2024.1安装小结 [打印本页]
作者Author: DavyHou 时间: 2024-7-29 13:46
标题: CP2K2024.1安装小结
本帖最后由 DavyHou 于 2024-7-31 09:08 编辑
安装GCC需要依赖三个库:GMP, MPFR 和 MPC三个库。
如果可以在联网的情况下,我们直接运行如下命令即可以安装这三个库。运行以下命令即可:./contrib/download_prerequisites
然后分别执行以下命令(这个过程可能有点久):
mkdir objdir
cd objdir
../configure --disable-checking --enable-languages=c,c++,fortran --disable-multilib --prefix=/path/to/install/gcc-14.1 --enable-threads=posix
make -j && make install
/path/to/install/gcc-14.1这个是自己想要给gcc安装的目录,需要自己创建好。
gcc
安装速度非常慢,需要一个多小时,要耐心等待
2. gcc安装结束后,解压cp2k-2024.1.tar.bz2文件 tar -xvf cp2k-2024.1.tar.bz2
之后进入./cp2k-2024.1/tools/toolchain/文件夹,运行以下命令
./install_cp2k_toolchain.sh --with-sirius=no --with-openmpi=install--with-plumed=install --with-gcc=system --with-intel=no > out.log2>&1 &
出现以下内容且无报错则为安装顺利完成。之后根据黑体提示即可编译CP2K。
------------------------------------------------------------------------------------------------------------------------------------------------
Done!
Now copy:
cp /home/xxx/software/cp2k-2024.1/tools/toolchain/install/arch/* tothe cp2k/arch/ directory
To use the installed tools and libraries and cp2k version
compiled with it you will first need to execute at the prompt:
source/home/xxx/software/cp2k-2024.1/tools/toolchain/install/setup
To build CP2K you should change directory:
cd cp2k/
make -j 32 ARCH=local VERSION="ssmp sdbg psmp pdbg"
arch files for GPU enabled CUDA versions are named "local_cuda.*"
arch files for GPU enabled HIP versions are named "local_hip.*"
arch files for OpenCL (GPU) versions are named "local_opencl.*"
arch files for coverage versions are named "local_coverage.*"
Note that these pre-built arch files are for the GNU compiler, users have toadapt them for other compilers.
It is possible to use the provided CP2K arch files as guidance.
--------------------------------------------------------------------------------------------------------------------------------------------------
安装结束后可以在./cp2k-2024.1/exe/local/文件夹下看到cp2k.pdbg,cp2k.popt,cp2k.psmp,cp2k.sdbg,cp2k.sopt,cp2k.ssmp几个文件。对于计算主要使用cp2k.popt和cp2k.psmp。
另外在.bashrc中写入以下内容
source /home/xxx/software/cp2k-2024.1/tools/toolchain/install/setup
export PATH=$PATH:/home/xxx/software/cp2k-2024.1/exe/local
3. 开始吐槽,心情不好的请绕道
3.1 F**king gcc-10.2
由于之前安装PACE的时候已经安装了gcc-10.2,并且该版本gcc已经相对较新了,所以没有再考虑安装其它版本gcc。但是该版本gcc在安装libint-v2.6.0-cp2k-lmax-5.tgz时有以下错误
python c_to_f.py ../include/libint2.h.i libint2_types_f.h Libint_t
grep '^#' ../include/libint2_types.h | grep -v '#include' >fortran_incldefs.h
FC libint_f.o
../include/libint2/util/generated/libint2_params.h:29:0:
29 | # if __has_include(<libint2_params.h>)
|
Error: missing '(' before "__has_include" operand
../include/libint2/util/generated/libint2_params.h:29:0: Error: operator"__has_include" requires a header-name
make[1]: *** [libint_f.o] Error 1
make[1]: Leaving directory`/home/xxx/software/t/cp2k-2024.1/tools/toolchain/build/libint-v2.6.0-cp2k-lmax-5/fortran'
make: *** [fortran] Error 1
但是更换为gcc14.1后一切都顺利了起来。所以有理由怀疑是编译器兼容问题。
3.2 F**king oneapi-2021
如果使用intel编译器来编译CP2K2024.1时,./install_cp2k_toolchain.sh可以顺利运行,无报错。但是make -j 32 ARCH=localVERSION="ssmp sdbg psmp pdbg"运行时只能编译出cp2k.sopt,cp2k.ssmp。之后报错,无法编译出cp2k.popt和cp2k.psmp。cp2k.ssmp虽然能够正常运行,但是遇到大体系结构,计算过程会有内存问题。
作者Author: Santz 时间: 2024-7-30 11:57
你的 Linux 发行版是多少呢?我想复现下
作者Author: DavyHou 时间: 2024-7-30 12:45
CentOS Linux release 7.9.2009 (Core)
但感觉应该和Linux版本关系不大,主要是编译器原因。
作者Author: Santz 时间: 2024-7-30 17:26
[root@Master ~]# date
Tue Jul 30 17:07:58 CST 2024
[root@master ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@master ~]# uname -r
3.10.0-1160.118.1.el7.x86_64
[root@master ~]# inxi -C
CPU:
Info: 32-core model: Intel Xeon Platinum 8336C bits: 64 type: MCP cache: L2: 40 MiB
Speed (MHz): avg: 850 min/max: 800/3500 cores: 1: 1100 2: 800 3: 800 4: 800 5: 800 6: 800
7: 800 8: 800 9: 800 10: 800 11: 800 12: 800 13: 800 14: 800 15: 800 16: 800 17: 800 18: 800
19: 800 20: 800 21: 800 22: 800 23: 800 24: 800 25: 800 26: 800 27: 800 28: 800 29: 2100
30: 800 31: 800 32: 800
基础环境:module load cmake/3.29.3 mkl/intel/oneapi-2022.3.1 compilers/gcc/10.2.0-patch
安装命令:./install_cp2k_toolchain.sh --with-gcc=system --with-intel=no --with-cmake=system --with-openmpi=install --with-plumed=install
虽然最终能成功编译,但过程比较坎坷,有些折腾,不建议使用 gcc-10.2.0 这一版本。
可能会碰到的问题:
- libint提示operator "__has_include" requires a header-name
解决:这是 gcc-10.2.*的版本问题,需要安装补丁后重新编译安装gcc-10.2.0,参见173,在 gcc-10.5.0 中这一问题已不复存在
- make 时提示Error: The rank of the element in the structure constructor at (1) does not match that of the component (0/1)
解决:修改src/mp2_types.F和src/cp_eri_mme_interface.F文件,注释掉#if __GNUC__ < 9 || (__GNUC__ == 9 && __GNUC_MINOR__ < 5)部分。参见174
2.CP2K-2024.1 + gcc-10.5.0
基础环境:module load cmake/3.29.3 mkl/intel/oneapi-2022.3.1 compilers/gcc/10.5.0
安装命令:./install_cp2k_toolchain.sh --with-gcc=system --with-intel=no --with-cmake=system --with-openmpi=install --with-plumed=install
很简单就编译测试通过了,没那么多问题。
从调试过程来看 CP2K对编译器的要求就是坨💩,文档里写明的编译器版本甚至可以出现如此多问题。[attach]96105[/attach]
附上调试过程,有兴趣的参考。
作者Author: Santz 时间: 2024-7-30 17:36
另外你提到的安装 gcc 的方法很旧了,还需要手动编译 mpc、mpfr、gmp、isl 这些,直接在解压后的 gcc 安装目录下执行 ./contrib/download_prerequisites ,如果网络不好,就手动把gmp-6.1.0.tar.bz2 mpfr-3.1.4.tar.bz2 mpc-1.0.3.tar.gz isl-0.18.tar.bz2 这几个包放到安装目录下,再执行 ./contrib/download_prerequisites即可,最后再configure
作者Author: DavyHou 时间: 2024-7-30 18:55
https://blog.csdn.net/nie19940803/article/details/102408025,这个帖子里的安装gcc的方法和你说的一样啊
作者Author: Santz 时间: 2024-7-30 21:15
不一样。需要 vip 我没看全,但是前面的手动编译gmp 等完全没必要。
作者Author: DavyHou 时间: 2024-7-31 09:00
本帖最后由 DavyHou 于 2024-7-31 09:09 编辑
是的,我没注意,他们现在改规则了,原来是免费看的。我再把安装过程完善一下。
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |