计算化学公社

标题: CP2K,结构未收敛,可能是提交任务的脚本或者命令的问题 [打印本页]

作者
Author:
Ying_Zhang    时间: 2026-2-6 18:06
标题: CP2K,结构未收敛,可能是提交任务的脚本或者命令的问题
Mg、Bi组成的体系做CP2K的变胞优化,第一步时SCF不收敛且震荡 - 第一性原理 (First-principles) - 计算化学公社

这是我发的上一个帖子,经两位老师的测试,均可以计算,所以其中一个老师提出,可能是编译环境或运行时加载的数学库跟编译时用的不严格一致等问题,所以我进行了测试和排错。

因为我把CP2K安装在所里的HPC cluster上,所以如果我直接使用下述命令去提交相同结构,可以正常运算。但问题在于,只能用24核,超过24就报错,如下图1。
  1. mpirun -np 24 cp2k.popt cell_opt.inp > cell_opt.out
复制代码
所以我第一次计算采用脚本,可以使用较多的计算核数,但是问题就是一直不收敛,出现较大的convergence,如上述链接,我发的疑问。
  1. #!/bin/bash
  2. #SBATCH -J CP2K              ## Job name
  3. #SBATCH -p pCluster          ## Partition
  4. #SBATCH --ntasks-per-node=48 ## Job will launch a maximum of number tasks per node
  5. #SBATCH --cpus-per-task=1    ## Ncpus number of processors per task
  6. #SBATCH --time=72:00:00      ## Time for the job
  7. #SBATCH --nodes=2            ## Number of nodes
  8. #SBATCH --mail-type=END,FAIL

  9. ulimit -s unlimited


  10. # Run the calculation
  11. INPUT_FILE=$1
  12. OUTPUT_FILE="${INPUT_FILE%.*}.out"


  13. mpirun --mca pml ob1 --mca btl ^openib -np $SLURM_NTASKS cp2k.popt -i $INPUT_FILE -o $OUTPUT_FILE
复制代码

想问一下,有没有比较好的提交命令?可以调用较多的计算节点,且能正确收敛计算。


作者
Author:
Uus/pMeC6H4-/キ    时间: 2026-2-6 18:22
一般超算集群是区分登录节点和计算节点的,用户编辑自己的~/.bashrc只能在登录节点生效,所以应该把设置环境变量、source那个setup脚本的命令写到排队系统的作业提交脚本里,让计算节点也能在配备好的环境下运行CP2K任务。服务器上用module管理相关环境的命令也需要写进去。

为什么mpirun要加这么多--mca选项?用户节点和计算节点的CPU款式是否相同,用toolchain安装CP2K依赖时--target-cpu有没有特别设置?
作者
Author:
Ying_Zhang    时间: 2026-2-6 21:17
Uus/pMeC6H4-/キ 发表于 2026-2-6 18:22
一般超算集群是区分登录节点和计算节点的,用户编辑自己的~/.bashrc只能在登录节点生效,所以应该把设置环 ...

老师您好,我重新写了一个脚本,如下,但是它仍旧产生一个报错,无法进行计算,报错如下图
  1. #!/bin/bash
  2. #SBATCH -J CP2K                      ## Job name
  3. #SBATCH -p pBigNode               ## Partition
  4. #SBATCH --ntasks-per-node=48 ## Job will launch a maximum of number tasks per node
  5. #SBATCH --cpus-per-task=1      ## Ncpus number of processors per task
  6. #SBATCH --time=72:00:00       ## Time for the job
  7. #SBATCH --nodes=1               ## Number of nodes
  8. #SBATCH --mail-type=END,FAIL                                                                                                                                                                 

  9. ulimit -s unlimited

  10. # Initialize modules and load modules
  11. module load compilers/gnu/11.1.1


  12. source /gpfs/home/zhangy10/Software/cp2k-2025.1/tools/toolchain/install/setup
  13. export PATH=$PATH:/gpfs/home/zhangy10/Software/cp2k-2025.1/exe/local
  14. export OMPI_MCA_btl_openib_allow_ib=1


  15. # Run the calculation
  16. INPUT_FILE=$1
  17. OUTPUT_FILE="${INPUT_FILE%.*}.out"

  18. mpirun -np $SLURM_NTASKS cp2k.popt -i $INPUT_FILE -o $OUTPUT_FILE

  19. exit

复制代码

作者
Author:
Ying_Zhang    时间: 2026-2-6 21:22
Uus/pMeC6H4-/キ 发表于 2026-2-6 18:22
一般超算集群是区分登录节点和计算节点的,用户编辑自己的~/.bashrc只能在登录节点生效,所以应该把设置环 ...

mpirun加--mca选项,是因为我问了管理员如何进行mpi job的运行在我们的clusetr上,他给出的建议。--target-cpu我没特别设置,不过确实存在因为这两天提交工作的人较多,我常用的parition满了,我换了一个partition,不知道会不会有影响。
作者
Author:
UW_0728.    时间: 2026-2-7 15:53
本帖最后由 UW_0728. 于 2026-2-7 15:56 编辑
Ying_Zhang 发表于 2026-2-6 21:17
老师您好,我重新写了一个脚本,如下,但是它仍旧产生一个报错,无法进行计算,报错如下图


你没有把相应MPI的PATH和LD_LIBRARY_PATH(以及如果用的非toolchain内安装的数学库的话还有那个数学库的相应变量)加到环境变量里面,source的那个setup文件不包含那两个环境变量路径

看来你得补一补Linux的一些环境变量基础知识

作者
Author:
Ying_Zhang    时间: 3 day ago
UW_0728. 发表于 2026-2-7 15:53
你没有把相应MPI的PATH和LD_LIBRARY_PATH(以及如果用的非toolchain内安装的数学库的话还有那个数学库 ...

感谢老师回答,我重新编译了一版2026.1的CP2K,今天可以成功运行。估计是我2025那版,在编译过程中出现问题,谢谢老师的回复。确实一些基础知识,还是得补。





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3