计算化学公社
标题:
记在超算上用spack安装cp2k 2024.1的过程
[打印本页]
作者Author:
Weldingspock
时间:
2024-3-13 10:19
标题:
记在超算上用spack安装cp2k 2024.1的过程
本贴旨在分享一些cp2k的安装过程和经验,想了解安装成功的请直接跳转第二次尝试
本系超算上系统是rocky linux 8.9并且没有module系统,整个系统里只有intel oneapi一套和gnu 8.5.0,openmpi也是用gcc 8.5.0编译的。很不巧cp2k 2024.1对gcc 8的支持只有8.3和8.4。在与管理员协商升级/添加 gcc其他版本无果后,无奈只能借助其他办法安装cp2k。
第一次尝试:
使用cp2k的toolchain单独安装gcc 13.2.0 + openmpi 4.1.5
cd cp2k-2024.1/tools/toolchain
./install_cp2k_toolchain.sh --with-gcc=install --with-openmpi=install --with-plumed=install --with-sirius=no --with-intel=no --with-intelmpi=no
复制代码
编译之后运行社长
CP2K第一性原理程序在CentOS中的简易安装方法 - 第一性原理 (First Principle) - 计算化学公社 (keinsci.com)
中的例子,可以正常运行,只不过每一个电子步都会输出如下内容
*** WARNING in fm/cp_fm_elpa.F:522 :: Setting real_kernel for ELPA failed ***
复制代码
cp2k的google groups也有相关的讨论
*** WARNING in fm/cp_fm_elpa.F:522 :: Setting real_kernel for ELPA failed *** (google.com)
,总体来说这个不影响计算结果,可以不管。但是我在之后运行自己的AIMD算例时,在第四步之后就会卡住,没有任何报错,不输出新的结果,PBS提交脚本和*.ener文件如下,计算节点的CPU是AMD 9554。寻找许久没有找到解决办法,遂放弃,准备重装cp2k
#!/bin/bash
#PBS -N test_cp2k
#PBS -S /bin/bash
#PBS -j oe
#PBS -q noor2
#PBS -m e
#PBS -l walltime=24:00:00,nodes=1:ppn=128
source /home/user/software/cp2k-2024.1/tools/toolchain/install/setup
export PATH=$PATH:/home/user/software/cp2k-2024.1/exe/local
ulimit -s unlimited
export OMP_NUM_THREADS=4
cd $PBS_O_WORKDIR
mpirun --hostfile $PBS_NODEFILE -np 128 cp2k.popt cubic.inp > cubic.out
复制代码
# Step Nr. Time[fs] Kin.[a.u.] Temp[K] Pot.[a.u.] Cons Qty[a.u.] UsedTime[s]
0 0.000000 0.917743086 600.000000000 -1536.936008871 -1535.938339394 0.000000000
1 1.000000 0.847687021 554.198903744 -1536.861005674 -1535.933450887 99.965670460
2 2.000000 0.718846252 469.965677422 -1536.720137543 -1535.924582538 18.499465991
3 3.000000 0.646875245 422.912634897 -1536.646454437 -1535.926571368 28.414587454
复制代码
第二次尝试
由于超算上没有module和singularity,因此这一次尝试使用spack安装cp2k。其中借鉴了帖子
使用包管理器spack安装cp2k的方法分享 - 第一性原理 (First Principle) - 计算化学公社 (keinsci.com)
的部分步骤。以下是我自己的安装过程、
1. spack安装直接借鉴上面提到的帖子就可以,记得把以下内容写到~/.bashrc文件里,方便后续操作
export SPACK_ROOT=${HOME}/soft/spack
source ${SPACK_ROOT}/share/spack/setup-env.sh
复制代码
之后可以输入
spack --help
复制代码
查看是否安装成功,安装成功的话会显示以下内容
usage: spack [-hkV] [--color {always,never,auto}] COMMAND ...
A flexible package manager that supports multiple versions,
configurations, platforms, and compilers.
These are common spack commands:
query packages:
list list and search available packages
info get detailed information on a particular package
find list and search installed packages
复制代码
2. 查看自己系统中有哪些版本的编译器
spack compiler find
spack compilers
复制代码
如果像我一样没有适合编译cp2k的编译器版本的,就需要自己安装合适版本的编译器。能够编译cp2k的编译器在这里看
dev:compiler_support [CP2K Open Source Molecular Dynamics ]
3. 安装gcc 13.2.0
spack install gcc@13.2.0
复制代码
安装成功之后记得
spack load gcc@13.2.0
复制代码
然后输入gcc -v看一下是不是13.2.0版本。当然spack也提供了很多安装的选项和语法,可以在spack的github看,也可以使用以下命令查看
spack info gcc@13.2.0
复制代码
4. 安装openmpi
先用
spack info openmpi
或者
spack versions openmpi
复制代码
查看有哪些版本,选择一个安装就好。我在这里选择的是openmpi 5.0.2。使用gcc 13.2.0编译openmpi 5.0.2的命令如下
spack install openmpi@5.0.2 %gcc@13.2.0
复制代码
安装成功之后记得再用以下命令检查一下
spack find openmpi
复制代码
5. 安装带plumed和elpa的cp2k 2024.1
spack find cp2k
复制代码
可以看到
Preferred version:
2024.1 https://github.com/cp2k/cp2k/releases/download/v2024.1/cp2k-2024.1.tar.bz2
复制代码
因此默认的就是2024.1,想安装其他版本也可以。利用gcc 13.2.0编译,openmpi 5.0.2并行安装cp2k的命令如下:
spack install cp2k %gcc@13.2.0 +plumed +elpa ^openmpi@5.0.2
复制代码
然后等待安装成功就好。想使用cp2k只需要以下命令
spack load cp2k
复制代码
最后提交的任务脚本如下
#!/bin/bash
#PBS -N test_cp2k
#PBS -S /bin/bash
#PBS -j oe
#PBS -q amd_user2
#PBS -m e
#PBS -l walltime=24:00:00,nodes=1:ppn=64
export SPACK_ROOT=/home/user/software/spack
source ${SPACK_ROOT}/share/spack/setup-env.sh
spack load cp2k
ulimit -s unlimited
export OMP_NUM_THREADS=4
cd $PBS_O_WORKDIR
mpirun --hostfile $PBS_NODEFILE -np 64 cp2k.psmp cubic.inp > cubic.out
复制代码
6.测试&总结
每个电子步依然有warning的问题,但是在跑AIMD算例的时候不会再有卡住的情况。整体来说,利用spack安装cp2k还是非常省心和简单的,安装其他复杂的软件或者管理多版本编译器等也可以使用spack,使用体验很不错。
作者Author:
abin
时间:
2024-3-13 11:36
本帖最后由 abin 于 2024-3-13 15:49 编辑
温馨提示:
只适用于具有稳定互联网连接的场所.
所以, 在多数超算平台, 可能没法使用. 出于安全考虑, 超算平台可能会禁止对外联网.
作者Author:
啊不错的飞过海
时间:
2024-3-13 14:22
超算平台没有必要手动安装MPI,他们一般有自己特定的libfabric和MPI编译条件,直接用现成的就行。有IB等非TCP互联的平台手动编译MPI可能链接不到正确配置的fabric库上,导致跨节点异常。
当然自己手动从libfabric安起也可以,不过就要面对ofi/verbs/psm等一堆通信实现选择,比较麻烦。
作者Author:
abin
时间:
2024-3-13 15:56
本帖最后由 abin 于 2024-3-13 15:58 编辑
接着楼上发言, 引申一下.
付费的超算平台, 当然期望用户自己搞.
尤其是多节点并行的计算.
通信协议选择不当, 计算会很慢的. 慢, 就多花时间呗, 时间多, 就多掏钱呗.
“ofi/verbs/psm等一堆通信实现选择” 这个很关键的.
而这一堆东西, 严重硬件依赖的.
还是楼上说的那句, 建议使用超算平台提供的指定版本的MPI.
除非他们提供的那玩意不能用.
别的超算我不了解.
就高校的所谓仪器设备管理处管辖的超级计算平台, 是按照贵重仪器设备管理的,
不能轻易修改当前配置, 在上面更新或者安装东西的, 相当于变更固定资产.
这玩意是固定资产, 不能瞎做变动的. 管理规则就是如此.
再说, 还涉及安全和责任. 公家的设备, 管理规则如此, 弄不好一堆麻烦, 谁乐意摆弄呀.
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3