计算化学公社

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

[ORCA] 使用orca做双杂化TDDFT时OOM报错

[复制链接 Copy URL]

6

帖子

0

威望

107

eV
积分
113

Level 2 能力者

各位老师好:
我想用双杂化泛函做分子间电荷转移TDDFT计算,在运行40多小时后出现MP2内存不足报错。两个分子总共有184个原子,由C/H/O/N四种原子构成。尝试过增加%maxcore   ,以及降低%pal nprocs   ,但结果只是被杀死的进程数一些变化。%pal nprocs   最低的时候降低到2。计算单个节点可用物理核心128内存512GB。计算脚本中申请了4个任务,每个任务分配32个核心。请问是核心内存分配不恰当还是双杂化算不动当前体系?
输入文件如下
! RSX-QIDH def2-TZVP def2/J def2-TZVP/C RIJCOSX tightSCF noautostart miniprint
%maxcore    80000
%pal nprocs   4 end
%tddft
  nroots 10
  TDA true
end
* xyz   0   1
以下是报错输出文件



4279

帖子

4

威望

9477

eV
积分
13836

Level 6 (一方通行)

MOKIT开发者

2#
发表于 Post on 2025-10-15 16:42:18 | 只看该作者 Only view this author
“计算脚本中申请了4个任务,每个任务分配32个核心”与%pal nprocs 4 end是什么关系?你的意思是二者好像有关联,但我没理解。在我看来这就是一个仅4核的计算
自动做多参考态计算的程序MOKIT

6

帖子

0

威望

107

eV
积分
113

Level 2 能力者

3#
 楼主 Author| 发表于 Post on 2025-10-15 17:06:18 | 只看该作者 Only view this author
zjxitcc 发表于 2025-10-15 16:42
“计算脚本中申请了4个任务,每个任务分配32个核心”与%pal nprocs 4 end是什么关系?你的意思是二者好像有 ...

老师您好,之前计算的时候,有OOM报错,我们以为是内存不够,所以只用了4核,是为了让每个核心能分配的内存多一些。但后面发现即使用2核,让这两个核心分配的内存更加多一些,还是会报错.

4279

帖子

4

威望

9477

eV
积分
13836

Level 6 (一方通行)

MOKIT开发者

4#
发表于 Post on 2025-10-15 17:12:41 | 只看该作者 Only view this author
Qyuan 发表于 2025-10-15 17:06
老师您好,之前计算的时候,有OOM报错,我们以为是内存不够,所以只用了4核,是为了让每个核心能分配的内 ...

那“计算脚本中申请了4个任务”是什么意思?一个节点提交4个不同的ORCA输入文件?为啥不只提交一个ORCA任务,用满512GB内存呢?
自动做多参考态计算的程序MOKIT

6

帖子

0

威望

107

eV
积分
113

Level 2 能力者

5#
 楼主 Author| 发表于 Post on 2025-10-15 17:43:10 | 只看该作者 Only view this author
zjxitcc 发表于 2025-10-15 17:12
那“计算脚本中申请了4个任务”是什么意思?一个节点提交4个不同的ORCA输入文件?为啥不只提交一个ORCA任 ...

老师您好,我的描述不太准确,并不是一个节点提交四个不同的输入文件。只有一个算例。
具体的的脚本文件如下:
#!/bin/bash
#SBATCH -J orca
#SBATCH -N 1
#SBATCH --ntasks=4
#SBATCH --cpus-per-task=32

之前也尝试过下面这种写法,但都是一样的报错
#!/bin/bash
#SBATCH -J orca
#SBATCH -N 1
#SBATCH --ntasks=128


683

帖子

12

威望

2825

eV
积分
3748

Level 5 (御坂)

鸩羽

6#
发表于 Post on 2025-10-15 17:48:48 | 只看该作者 Only view this author
Qyuan 发表于 2025-10-15 17:43
老师您好,我的描述不太准确,并不是一个节点提交四个不同的输入文件。只有一个算例。
具体的的脚本文件 ...

我交任务的时候是这么写的
#SBATCH --ntasks-per-node=32
#SBATCH --mem=100000M
你可以试着写上--mem,看看实际上有没有分给你那么多内存
某不知名实验组从苞米地里长出来的计算选手

4279

帖子

4

威望

9477

eV
积分
13836

Level 6 (一方通行)

MOKIT开发者

7#
发表于 Post on 2025-10-15 18:10:46 | 只看该作者 Only view this author
本帖最后由 zjxitcc 于 2025-10-15 18:15 编辑
Qyuan 发表于 2025-10-15 17:43
老师您好,我的描述不太准确,并不是一个节点提交四个不同的输入文件。只有一个算例。
具体的的脚本文件 ...

你那么写是不合理的。需要这样
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=64
#SBATCH --cpus-per-task=1
#SBATCH --mem=500G
或者采用简写
#SBATCH -N 1
#SBATCH -n 64
#SBATCH -c 1
#SBATCH --mem=500G
表示最多允许64进程并行,最多允许使用500GB内存。集群管理员有设置每核最大内存是多少。如6L所说,你没写--mem,那就会受集群管理员设置的默认阈值限制。在ORCA输入文件里写多少内存 只是告诉ORCA可以用多少,你还需要--mem告诉SLURM我这个任务允许使用多少内存。另外,ORCA目前不支持MPI+OpenMP混合并行,只有MPI并行,你那样4*32的写法是不对的。

然后inp文件前两行写
%pal nprocs 64 end
%maxcore 7700

自动做多参考态计算的程序MOKIT

6

帖子

0

威望

107

eV
积分
113

Level 2 能力者

8#
 楼主 Author| 发表于 Post on 2025-10-15 20:14:02 | 只看该作者 Only view this author
wal 发表于 2025-10-15 17:48
我交任务的时候是这么写的
#SBATCH --ntasks-per-node=32
#SBATCH --mem=100000M

好的好的,我试下,谢谢老师

6

帖子

0

威望

107

eV
积分
113

Level 2 能力者

9#
 楼主 Author| 发表于 Post on 2025-10-15 20:15:08 | 只看该作者 Only view this author
zjxitcc 发表于 2025-10-15 18:10
你那么写是不合理的。需要这样
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=64

嗯嗯,我试下,太感谢您了

6

帖子

0

威望

107

eV
积分
113

Level 2 能力者

10#
 楼主 Author| 发表于 Post on 2025-10-17 16:24:24 | 只看该作者 Only view this author
zjxitcc 发表于 2025-10-15 18:10
你那么写是不合理的。需要这样
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=64

老师您好,按照你的建议修改了我的输入文件和脚本文件,还是会报错,还有没有其他的解决办法呢?
以下是报错信息


RI-MP2 ENERGY
-------------
Dimension of the basis                    ... 4004
Memory devoted to MP2                     ... 7700 MB   
Data format for buffers                   ... DOUBLE
Compression type for matrix containers    ... UNCOMPRESSED
Overall scaling of the MP2 energy         ...   3.300e-01
Calculating two index integrals           ... done (    1.108 sec)
Cholesky decomposition of V**-1           ... [node555:113360] 63 more processes have sent help message help-mpi-btl-openib.txt / ib port not selected
[node555:113360] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
[node555:113360] 63 more processes have sent help message help-mpi-btl-openib.txt / error in device init
done (   19.468 sec)
--------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun noticed that process rank 32 with PID 113401 on node node555 exited on signal 9 (Killed).
--------------------------------------------------------------------------

ORCA finished by error termination in MP2
Calling Command: mpirun -np 64  /public/home/apprepo/orca/5.0.2-openmpi4.1.1/app/orca_mp2_mpi s1.mp2inp.tmp s1
[file orca_tools/qcmsg.cpp, line 465]:
  .... aborting the run

[file orca_tools/qcmsg.cpp, line 465]:
  .... aborting the run

slurmstepd: error: Detected 159 oom-kill event(s) in StepId=15924125.batch. Some of your processes may have been killed by the cgroup out-of-memory handler.

本版积分规则 Credits rule

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

GMT+8, 2026-1-25 07:34 , Processed in 0.179817 second(s), 23 queries , Gzip On.

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