计算化学公社

标题: 请问ORCA到底该如何设置合适的核数和内存? [打印本页]

作者
Author:
sai77    时间: 2023-7-11 08:57
标题: 请问ORCA到底该如何设置合适的核数和内存?
服务器112核,192GB内存,ORCA是5.01版本。
156个原子的体系,构象搜索优化了8个构象,想用ORCA算下单点能,用脚本同时提交了8个任务。
每个任务20核,每个核2000MB,报错;(同时运行5个,内存超了,报错可以理解)
每个任务40核,每个核1000MB,还是报错;(同时运行2个,单核内存不足)
每个任务40核,每个核2000MB,仍然报错。(这个还报错,为啥?)
折腾了一天半,一个任务都没算完,简直无语。
ORCA这内存分配是不是有点太差了?
请问我这体系到底该怎么分配内存?每次提交多任务都要这么反复试错吗?

作者
Author:
zjxitcc    时间: 2023-7-11 09:11
"每个任务40核,每个核2000MB,仍然报错"报错内容是啥
作者
Author:
anson    时间: 2023-7-11 09:13
没有具体的报错信息不太清楚原因,多任务的话最好还是设置绑定CPU吧
通过设置CPU内核绑定降低ORCA同时做多任务的耗时
作者
Author:
sai77    时间: 2023-7-11 09:35
zjxitcc 发表于 2023-7-11 09:11
"每个任务40核,每个核2000MB,仍然报错"报错内容是啥

输出文件被删了,大概就是在SCF计算开始没多久就中止了

刚刚提交的40核*1500还是报错了
ORCA finished by error termination in MP2
Not enough memory in RI-Trafo (need 1458.50682067871 MB)
作者
Author:
dzdhp    时间: 2023-7-11 09:40
你内存给的太少了,156个原子,计算单点能消耗的内春远远大于优化,我之前跑类似体系的时候,优化都怕内存不够用给了4000,单点试了几次,8000经常提醒我内存不够用,建议你给到一万,15个核跑一个任务。最好不要同时跑几个,虽然你核多,但是内存也太少了,我48核也配了180的内存。
作者
Author:
sai77    时间: 2023-7-11 09:45
dzdhp 发表于 2023-7-11 09:40
你内存给的太少了,156个原子,计算单点能消耗的内春远远大于优化,我之前跑类似体系的时候,优化都怕内存 ...

就想偷懒让它排队自己算,结果这么折腾
如果再不行只能一个个提交了
作者
Author:
dzdhp    时间: 2023-7-11 09:48
sai77 发表于 2023-7-11 09:45
就想偷懒让它排队自己算,结果这么折腾
如果再不行只能一个个提交了

用不着一个一个提交啊,你可以一次性全部提交上去,一个接着一个算,而不是几个一起跑。
作者
Author:
sai77    时间: 2023-7-11 09:50
anson 发表于 2023-7-11 09:13
没有具体的报错信息不太清楚原因,多任务的话最好还是设置绑定CPU吧
通过设置CPU内核绑定降低ORCA同时做多 ...

谢谢,学习一下~
估计40*2000的时候报错是因为我同时提交了高斯任务,抢了这边的CPU
作者
Author:
zjxitcc    时间: 2023-7-11 10:01
sai77 发表于 2023-7-11 09:50
谢谢,学习一下~
估计40*2000的时候报错是因为我同时提交了高斯任务,抢了这边的CPU

抢核跑那没啥可说的,不能甩锅ORCA。诀窍就1条不用问:提高单核内存,减少并行核数。
作者
Author:
sai77    时间: 2023-7-11 10:01
dzdhp 发表于 2023-7-11 09:48
用不着一个一个提交啊,你可以一次性全部提交上去,一个接着一个算,而不是几个一起跑。

没懂,现在112核全空闲,单个任务15核,一提交不就会7个任务都跑上了吗?
作者
Author:
abin    时间: 2023-7-11 10:33
sai77 发表于 2023-7-11 10:01
没懂,现在112核全空闲,单个任务15核,一提交不就会7个任务都跑上了吗?

你想多了. 异想天开.

对于ORCA这种内存控制不是十分理想的应用程序,
建议使用slurm并开启cgroup资源限定, 来合理规范资源使用.

网上有很多案列, 可以参考自己配置slurm调度器.

如果懒得折腾, 可以使用逼人提供的傻瓜式一键安装方案, 可以自动给工作站/单机配置slurm调度器, 并完成cgroup等自动配置.

另, 并行CPU个数, 建议从2^n个起步设定. 10个核心, 20个核心, 这都是哪里学的呀?
作者
Author:
sai77    时间: 2023-7-11 11:08
本帖最后由 sai77 于 2023-7-11 11:13 编辑
abin 发表于 2023-7-11 10:33
你想多了. 异想天开.

对于ORCA这种内存控制不是十分理想的应用程序,

输入文件
%maxcore  10000
%pal nprocs   16

提交任务,7个同时运行了

5分钟后全体报错Performing Cholesky decomposition & store   
ORCA finished by error termination in SCF
  .... aborting the run


作者
Author:
dzdhp    时间: 2023-7-11 11:24
sai77 发表于 2023-7-11 11:08
输入文件
%maxcore  10000
%pal nprocs   16

http://sobereva.com/542。把多个任务写到一个文件里,sob老师讲过了
作者
Author:
abin    时间: 2023-7-11 11:50


有一个事实要清楚,
ORCA并不严格按照你的要求来使用内存.
比如maxcore  10000, 实际上, 并非严格做到每个核心使用10GB, 16个核心, 也就是每个计算任务160GB内存,
可能会超过这个数据.

如果你的调度器限定严格, 那么超越内存上限意味着out of memory, 会直接干掉你的计算任务的.

同时也取决于调度器的默认设定,
就算只要了16个核心, 160GB内存, 那么节点是你自己独占吗?
有人和你一起共用资源吗?

ORCA的最后错误信息并非真正的错误信息, 看看调度器日志说啥了.

作者
Author:
chrinide    时间: 2023-7-11 12:17
abin 发表于 2023-7-11 10:33
你想多了. 异想天开.

对于ORCA这种内存控制不是十分理想的应用程序,

大佬,我知道你其实想说的是“鄙人”
作者
Author:
Deepast    时间: 2023-7-11 14:25
ORCA的内存分配很迷
最近跑一个150个原子的频率计算,发现相同的设置不同构型可能有的任务就会卡住
比方说有个结构8核每个核20G跑不通,但是20核每个核12G就能跑

也不是说算不动,内存报错啥的,就是会永远卡在
Dipole derivatives
这一步
作者
Author:
wzkchem5    时间: 2023-7-11 15:29
Deepast 发表于 2023-7-11 07:25
ORCA的内存分配很迷
最近跑一个150个原子的频率计算,发现相同的设置不同构型可能有的任务就会卡住
比方 ...

卡在dipole derivatives可能是orca 5.0.0的bug,在更新的版本里已经修复了,如果你用的不是最新版的话,可以用orca 5.0.4试试
作者
Author:
Deepast    时间: 2023-7-11 15:31
wzkchem5 发表于 2023-7-11 15:29
卡在dipole derivatives可能是orca 5.0.0的bug,在更新的版本里已经修复了,如果你用的不是最新版的话, ...

我用的就是5.0.4的...
作者
Author:
wzkchem5    时间: 2023-7-11 15:34
Deepast 发表于 2023-7-11 08:31
我用的就是5.0.4的...

那建议检查一下openmpi有没有安装对,以及硬件方面有没有问题(例如如果硬盘有坏扇区,在坏扇区读写也会卡)。如果都没有问题的话,可以在orca论坛上报一下bug。理论上内存不足应该报错退出,要么orca自己报错,要么openmpi报错,至少操作系统也会报错,但是不应该不报错直接卡死
作者
Author:
Deepast    时间: 2023-7-11 15:41
wzkchem5 发表于 2023-7-11 15:34
那建议检查一下openmpi有没有安装对,以及硬件方面有没有问题(例如如果硬盘有坏扇区,在坏扇区读写也会 ...

我有空再测试看看。
它是直接卡死一点报错都没,更奇怪的是瞎改核数和内存就能跑通了。




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