计算化学公社

 找回密码 Forget password
 注册 Register
Views: 4115|回复 Reply: 20

[ORCA] ORCA并行效率小测试

[复制链接 Copy URL]

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

发表于 Post on 2022-5-4 04:29:41 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 ggdh 于 2022-5-4 10:27 编辑

测试环境:硬件:
Intel 8375c * 2 + 32*16内存
AMD 7T83 * 2 + 32*16内存
软件:
Fedora release 35
Gaussian16 A.03 AVX2
ORCA 5.0.3
openmpi 4.1.1
GCC 11.2.1
测试方法:
测试脚本: xbench 3.0 使用方法可以去g16/orca速度测试脚本xbench 3.0
测试体系: Gaussian Test Job 397
运算级别: 见下方具体描述
NUMA策略: 非满占据情况下默认使用分布式策略

防拱火声明
本次测试中同时对Gaussian16和ORCA进行了测试,但是由于Gausssian和ORCA的默认精度完全不同(包括格点精度,积分精度,收敛精度,ri加速等)。所以,除了测试体系一样,运算级别一样以外,两者的运算速度完全没有可比性。另外Gaussian的运算稳定性也比ORCA要好一些。
所以,以下所有关于ORCA和G16速度的对比讨论,就是基于这两者的运算速度完全没有可比性的前提进行的。

一句话结论:
64核以下如果内存足够ORCA的单节点并行效率都不错,64到128核速度提升比较小;如果有多个任务需要运行,和一次只运行一个任务比,同时运行多个任务的总收益提升比Gaussian更大。

测试一,单任务单点计算并行效率
a) 在8375c 上进行B3LYP/def2SVP级别的计算
测试命令:
  1. xbench.sh -n "8 16 24 32 48 64" -t 1 -p g16 -r 3 -k "B3LYP def2SVP scf(tight) g09default"  #g16
  2. xbench.sh -n "8 16 24 32 48 64" -t 1 -p orca -r 3 -k "B3LYP def2SVP tightscf"  #orca
复制代码
测试结果:
8375def2svp.png
对于小任务,并行到64核速度仍有提升,但48核后速度提升不大
小任务G16比开启RIJCOSX的ORCA快
b) 在8375c 上进行B3LYP/def2TZVP级别的计算
测试命令:
  1. xbench.sh -n "8 16 24 32 48 64" -t 1 -p g16 -r 3 -k "B3LYP def2TZVP scf(tight) g09default"  #g16
  2. xbench.sh -n "8 16 24 32 48 64" -t 1 -p orca -r 3 -k "B3LYP def2TZVP tightscf"  #orca
复制代码
测试结果:
8375def2tzvp.png
对于大任务G16被开启RIJCOSX的ORCA反超
c) 在7T83 上进行B3LYP/def2TZVP级别的计算
测试命令:
  1. xbench.sh -n "16 32 64 128" -t 1 -p g16 -r 3 -k "B3LYP def2TZVP scf(tight) g09default"  #g16
  2. xbench.sh -n "16 32 64 128" -t 1 -p orca -r 3 -k "B3LYP def2TZVP tightscf"  #orca
复制代码
测试结果:
7t83def2tzvp.png
orca在8375C上采用少量核心并行时,速度不稳定,原因未知(已经用-cpu-list实现核心绑定)
8375c和7T83上的并行效率和运算速度相仿
128核对比64核速度仍有提升,此时orca的提升(1.1倍)低于gaussian(1.4倍)

d) 在7T83 上进行r2SCAN-3C/def2TZVP级别的计算
测试命令:
  1. xbench.sh -n "16 32 64 128" -t 1 -p orca -r 3 -k "r2scan-3c tightscf"  #orca
复制代码
测试结果:
r2scan.png
纯泛函比杂化泛函快了很多,def2-mTZVPP级别的基组比杂化泛函用def2-SVP级别的还快

测试二,多任务单点计算并行效率
在7T83 上进行B3LYP/def2TZVP级别的计算
测试命令:
  1. xbench.sh -n "16 32 64 128" -t m -p g16 -r 3 -k "B3LYP def2TZVP scf(tight) g09default"  #g16
  2. xbench.sh -n "16 32 64 128" -t m -p orca -r 3 -k "B3LYP def2TZVP tightscf"  #orca
复制代码
测试结果:
mtask-tzvp.png
已知同时跑的任务越多,算力越高,这个效应对于orca更显著

测试三,单任务TDDFT计算并行效率
在7T83 上进行TD-B3LYP/def2TZVP级别的计算
测试命令:
  1. xbench.sh -n "16 32 64 128" -t 1 -p g16 -r 3 -k "B3LYP def2TZVP TD scf(tight) g09default"  #g16
  2. xbench.sh -n "16 32 64 128" -t 1 -p orca -r 3 -k "B3LYP def2TZVP tightscf" -b "%TDDFT NROOTS 3\nEND" #orca
复制代码
测试结果:
tdb3lypdef2tzvp.png
TD任务ORCA比Gaussian快了非常多
但是并行效率比Gaussian低

测试四,单任务DLPNO计算并行效率
在7T83 上进行DLNPO-CCSD(T)/cc-pVDZ级别的计算
测试命令:
  1. xbench.sh -n "16 32 64 128" -t 1 -p orca -r 3 -m 2000c -k "cc-pVDZ cc-pVDZ/C DLPNO-CCSD(T) NormalPNO TightSCF"  #orca fix mem per core
  2. xbench.sh -n "16 32 64 128" -t 1 -p orca -r 3 -m 500 -k "cc-pVDZ cc-pVDZ/C DLPNO-CCSD(T) NormalPNO TightSCF" #orca fix total mem
复制代码
测试结果:
dlpno-ccsdT.png


2000MB/Core的设定是为了避免内存不同对并行效率产生影响
DLNPO-CCSD(T)并行到64核后速度基本不提升
另外如果控制总内存为500GB, 可以看到并行效率下降的更快
这个体系小,结论的有效性对于TZ级别的基组存疑
我膨胀了,试图用cc-pVTZ进行测试,算了2天一个任务没有跑完,就放弃了。



评分 Rate

参与人数
Participants 8
威望 +1 eV +28 收起 理由
Reason
艾刈虎 + 2
CJW + 3
丁越 + 5 月亮不睡俺不睡,俺是秃头小宝贝
卡开发发 + 5 精品内容
wzkchem5 + 3
biogon + 5
sobereva + 1
心向暖阳 + 5 虽然我看不懂,但我对发帖时间大受震撼

查看全部评分 View all ratings

197

帖子

5

威望

1689

eV
积分
1986

Level 5 (御坂)

发表于 Post on 2022-5-4 11:02:44 | 显示全部楼层 Show all
之前我测试过频率计算,有机分子,原子数约50,B3LYP-D3(BJ)/def2-TZVP,40核,开rijcosx的orca比g16快5倍。太过瘾了。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
ggdh + 5 谢谢分享

查看全部评分 View all ratings

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2022-5-4 11:13:37 | 显示全部楼层 Show all
Freeman 发表于 2022-5-4 11:02
之前我测试过频率计算,有机分子,原子数约50,B3LYP-D3(BJ)/def2-TZVP,40核,开rijcosx的orca比g16快5倍 ...

啊 频率计算ORCA都比Gaussian 快么?真的假的

197

帖子

5

威望

1689

eV
积分
1986

Level 5 (御坂)

发表于 Post on 2022-5-4 11:21:36 | 显示全部楼层 Show all
ggdh 发表于 2022-5-4 11:13
啊 频率计算ORCA都比Gaussian 快么?真的假的

是这样的。rijcosx太香了。

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2022-5-4 11:23:14 | 显示全部楼层 Show all
Freeman 发表于 2022-5-4 11:21
是这样的。rijcosx太香了。

卧槽这有点颠覆我的认知了我去测一下

133

帖子

2

威望

805

eV
积分
978

Level 4 (黑子)

发表于 Post on 2022-5-4 11:44:38 | 显示全部楼层 Show all
而且ORCA5在做40个以上原子的大体系振动分析的时候会分IBatch求解CPSCF方程,速度提升不少(40这个数是个人经验,不一定准确)

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
ggdh + 5 谢谢分享

查看全部评分 View all ratings

4万

帖子

99

威望

4万

eV
积分
89975

管理员

公社社长+计算化学玩家

发表于 Post on 2022-5-4 14:22:56 | 显示全部楼层 Show all
振动分析一般很少用到def2-TZVP
基组不大的话,RIJCOSX给ORCA来带的优势就相对有限了
之前我用ORCA 4.0对比过40个纯重原子纳米管体系的振动分析速度,B3LYP/def2-SVP的时候ORCA开RIJCOSX时明显慢于Gaussian。ORCA 5振动分析速度提升不少,但此时也不至于能明显超过Gaussian。
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办最高质量的各种计算化学类培训:初级量子化学培训班基础(中级)量子化学培训班分子动力学与GROMACS培训班量子化学波函数分析与Multiwfn程序培训班,内容介绍以及往届资料购买请点击链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的最佳途径。培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取培训最新消息、避免错过网上最有价值的计算化学文章!
欢迎加入人气最高、水准最高的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人,讨论范畴相同
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

256

帖子

0

威望

966

eV
积分
1222

Level 4 (黑子)

发表于 Post on 2022-5-4 14:25:17 | 显示全部楼层 Show all
为什么核心越多计算耗时越长?是用的CPU时间计算的吗?

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2022-5-4 17:11:12 | 显示全部楼层 Show all
mfdsrax2 发表于 2022-5-4 14:25
为什么核心越多计算耗时越长?是用的CPU时间计算的吗?

看纵坐标 一般都是耗时的倒数乘以10000

256

帖子

0

威望

966

eV
积分
1222

Level 4 (黑子)

发表于 Post on 2022-5-4 18:03:08 | 显示全部楼层 Show all
再请问一下,内存对单点计算的影响如何?是越大越好吗?

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2022-5-4 18:33:58 | 显示全部楼层 Show all
mfdsrax2 发表于 2022-5-4 18:03
再请问一下,内存对单点计算的影响如何?是越大越好吗?

一般来说 DFT不怎么吃内存, 用很大的内存估计速度不会快
如果是DLPNO-CCSD(T)级别的计算,比较吃内存,内存不够不让算。

28

帖子

0

威望

462

eV
积分
490

Level 3 能力者

发表于 Post on 2022-5-5 15:18:11 | 显示全部楼层 Show all
内存对于ORCA的并行影响这么大么,为什么我用64核比32核反而要慢不少
平台:AMD 7452*2 + 16*16内存 + ORCA 5.0.3 + openmpi 4.1.1

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2022-5-5 15:39:53 | 显示全部楼层 Show all
MisakaFaction 发表于 2022-5-5 15:18
内存对于ORCA的并行影响这么大么,为什么我用64核比32核反而要慢不少
平台:AMD 7452*2 + 16*16内存 +  ...

你是什么任务啊?

49

帖子

0

威望

3183

eV
积分
3232

Level 5 (御坂)

发表于 Post on 2022-5-6 14:51:55 | 显示全部楼层 Show all
从“b) 在8375c 上进行B3LYP/def2TZVP级别的计算”这个测试结果看,对于8375C来说,ORCA在使用8、16、24核的速度不太合理,明显偏慢很多,比如32核速度竟然是16核的3倍,这反常识了。但是在“c) 在7T83 上进行B3LYP/def2TZVP级别的计算”可以看到对于7T83来说,32核速度是16核的2倍不到一点,这结果很合理。可惜没有7T83的8、24核的速度,不然可以更加清楚的看出两个CPU在较少核心数下的区别,正常情况下,两个CPU应该差不多才合理。我用老师的脚本在8171M上测试了下,如下图,发现较少核心数下结果是合理的,从图中可知ORCA在8171M用8、16、24核的速度比8375C还快,这也说明8375C使用8、16、24核的速度不太合理;另外从图中也可以大致看出8375C或7T83在同核心数下速度比8171M要快20-40%左右,且并行核心数越多,差距越大。所以有理由怀疑是不是CPU本身问题或是系统环境编译等其他原因导致的8375C在ORCA使用8、16、24核的速度偏慢很多。另外,对于8375C,这种偏慢情况是否在以8、16、24核同时运行多个任务时也存在呢(帖子中只测了7T83)?
202205061448468784..png

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2022-5-6 16:58:28 | 显示全部楼层 Show all
本帖最后由 ggdh 于 2022-5-6 17:00 编辑
胡说 发表于 2022-5-6 14:51
从“b) 在8375c 上进行B3LYP/def2TZVP级别的计算”这个测试结果看,对于8375C来说,ORCA在使用8、16、24核 ...

你看的这么仔细啊 哈哈
这个现象确实比较诡异8/16/24核跑的时候 有概率非常快(其实是正常发挥?)可以跑完, 下面是我跑了8次对应的耗时

table4.png
这里跑的时候核心都是绑定的, 设置都是一样, 并且是用xbench -r 连续跑的。
为什么会出现这个现象,还不清楚。

本版积分规则 Credits rule

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

GMT+8, 2023-2-7 02:30 , Processed in 0.343012 second(s), 26 queries .

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