计算化学公社

 找回密码 Forget password
 注册 Register
Views: 284|回复 Reply: 2
打印 Print 上一主题 Last thread 下一主题 Next thread

[CP2K] 求教用psmp.cp2k振动分析,计算速度过于慢

[复制链接 Copy URL]

36

帖子

0

威望

499

eV
积分
535

Level 4 (黑子)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 白菜 于 2025-9-21 08:18 编辑

老师们好,我想在超算上用psmp版CP2K进行振动分析,验证结构优化是极小点。现在psmp表现出的计算速度感觉有些不对劲儿,想请老师们帮忙看看:
1. 集群每台计算节点配备:2颗Intel Xeon Gold 6142处理器(主频2.6 GHz,16核)、192 GB DDR4内存、240 GB 本地SSD硬盘。
   设置了两个队列:score队列(串行作业和32 核以下的并行作业建议提交至score队列)、snode队列(使用32的倍数的核数的并行作业须提交到snode队列)。
   魔方-III集群计算和登录节点安装的操作系统为:CentOS Linux release 7.5(64位)。   
   集群采用的作业管理系统为:Platform LSF 10.1。
2. cp2k-2024.1-psmp.lsf提交脚本是结合超算管理员给的popt版提交脚本、集群手册和Gemini提示写的:
  1. #!/bin/bash
  2. #BSUB -J cp2k_psmp_test
  3. #BSUB -q snode
  4. #BSUB -n 128
  5. #BSUB -R "span[ptile=32]"
  6. #BSUB -o %J.out
  7. #BSUB -e %J.err

  8. ulimit -s unlimited
  9. export I_MPI_THREAD_SPLIT=1
  10. export OMP_STACKSIZE=4G

  11. #ENV
  12. . /public/home/users/zkchu/compiler/oneapi-2022.1/setvars.sh
  13. . /public/software/profile.d/compiler_gnu-7.2.0.sh
  14. export CP2K_DATA_DIR=${HOME}/cp2k-2024.1/data

  15. # Parallel settings
  16. export NP_PER_NODE=8
  17. export OMP_NUM_THREADS=4

  18. CURDIR=$PWD

  19. # Generate nodelist for mpirun
  20. rm -f $CURDIR/nodelist* >& /dev/null
  21. echo $LSB_MCPU_HOSTS | tr "\ " "\n" | sed -n 'p;N' | sort > $CURDIR/nodelist.tmp
  22. for j in `cat $CURDIR/nodelist.tmp`
  23. do
  24.     for k in `seq 1 $NP_PER_NODE`
  25.     do
  26.         echo $j >> $CURDIR/nodelist
  27.     done
  28. done

  29. NP=`cat $CURDIR/nodelist | wc -l`

  30. mpirun -np $NP -machinefile $CURDIR/nodelist $HOME/cp2k-2024.1/exe/Linux-intel-x86_64/cp2k.psmp -i test.inp -o test.out
复制代码

3.(1) 计算体系1(和体系2结构类似,作为参考):原胞a b c约为15埃的MOF(183原子),128核跑了19h完成振动分析。
cp2k版本
.inp输入文件设置
.lsf提交脚本设置
1SCF迭代用时
单节点(32核)CPU负载
单节点内存使用率峰值
psmp
NPROC_REP = 1
NP_PER_NODE=1  
OMP_NUM_THREADS=32  
STACKSIZE=4G
86~89
24.83  
24.84  
24.61  
26.41
77%

(2)计算体系2:原胞a b c约为8、9埃的MOF,扩为2*2*2超胞(488原子)。以下振动分析任务都是用128核跑的。
序号
cp2k版本
.inp输入文件设置
.lsf提交脚本设置
1SCF迭代用时
单节点(32核)CPU负载
单节点内存使用率峰值
A
popt
NPROC_REP = 8
=   KILLED BY SIGNAL: 9 (Killed)
B
popt
NPROC_REP = 16
200多秒
40.31
31.97
33.27
38.93
98%
C
psmp
NPROC_REP = 1
NP_PER_NODE=4  
OMP_NUM_THREADS=8  
STACKSIZE=512M
forrtl: severe (174):  SIGSEGV, segmentation fault occurred
D
psmp
NPROC_REP = 1
NP_PER_NODE=2  
OMP_NUM_THREADS=16  
STACKSIZE=4G
=   KILLED BY SIGNAL: 9 (Killed)
E
psmp
NPROC_REP = 1
NP_PER_NODE=2  
OMP_NUM_THREADS=16  
STACKSIZE=512M
863  
891  
899
2.53  
2.90  
2.53  
2.33
93%
F
psmp
NPROC_REP = 1
NP_PER_NODE=1  
OMP_NUM_THREADS=32  
STACKSIZE=4G
865
1.39  
1.30  
1.26
1.40
49%

现在的疑问有:
① 对于E和F,CPU负载很低、SCF迭代耗时长且相差不多,这合理吗?
② 请问怎么设置参数或者调整提交脚本,可以充分发挥CPU资源、不爆内存,提高psmp版本的计算效率呢?
(因为不太懂超算,总感觉自己写的提交脚本有点问题)



16

帖子

0

威望

644

eV
积分
660

Level 4 (黑子)

2#
发表于 Post on 2025-9-22 11:40:02 | 只看该作者 Only view this author
不爆内存-->减少子任务的数量, 增加子任务的内存分配
如果跨节点psmp更慢,推荐用popt

36

帖子

0

威望

499

eV
积分
535

Level 4 (黑子)

3#
 楼主 Author| 发表于 Post on 2025-9-23 01:07:51 | 只看该作者 Only view this author
wangxc 发表于 2025-9-22 11:40
不爆内存-->减少子任务的数量, 增加子任务的内存分配
如果跨节点psmp更慢,推荐用popt

嗯嗯,谢谢wangxc老师~

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-17 16:09 , Processed in 0.242457 second(s), 20 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list