计算化学公社

标题: 使用orca做双杂化TDDFT时OOM报错 [打印本页]

作者
Author:
Qyuan    时间: 2025-10-15 16:34
标题: 使用orca做双杂化TDDFT时OOM报错
各位老师好:
我想用双杂化泛函做分子间电荷转移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
以下是报错输出文件
(, 下载次数 Times of downloads: 0)



作者
Author:
zjxitcc    时间: 2025-10-15 16:42
“计算脚本中申请了4个任务,每个任务分配32个核心”与%pal nprocs 4 end是什么关系?你的意思是二者好像有关联,但我没理解。在我看来这就是一个仅4核的计算
作者
Author:
Qyuan    时间: 2025-10-15 17:06
zjxitcc 发表于 2025-10-15 16:42
“计算脚本中申请了4个任务,每个任务分配32个核心”与%pal nprocs 4 end是什么关系?你的意思是二者好像有 ...

老师您好,之前计算的时候,有OOM报错,我们以为是内存不够,所以只用了4核,是为了让每个核心能分配的内存多一些。但后面发现即使用2核,让这两个核心分配的内存更加多一些,还是会报错.
作者
Author:
zjxitcc    时间: 2025-10-15 17:12
Qyuan 发表于 2025-10-15 17:06
老师您好,之前计算的时候,有OOM报错,我们以为是内存不够,所以只用了4核,是为了让每个核心能分配的内 ...

那“计算脚本中申请了4个任务”是什么意思?一个节点提交4个不同的ORCA输入文件?为啥不只提交一个ORCA任务,用满512GB内存呢?
作者
Author:
Qyuan    时间: 2025-10-15 17:43
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



作者
Author:
wal    时间: 2025-10-15 17:48
Qyuan 发表于 2025-10-15 17:43
老师您好,我的描述不太准确,并不是一个节点提交四个不同的输入文件。只有一个算例。
具体的的脚本文件 ...

我交任务的时候是这么写的
#SBATCH --ntasks-per-node=32
#SBATCH --mem=100000M
你可以试着写上--mem,看看实际上有没有分给你那么多内存
作者
Author:
zjxitcc    时间: 2025-10-15 18:10
本帖最后由 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


作者
Author:
Qyuan    时间: 2025-10-15 20:14
wal 发表于 2025-10-15 17:48
我交任务的时候是这么写的
#SBATCH --ntasks-per-node=32
#SBATCH --mem=100000M

好的好的,我试下,谢谢老师
作者
Author:
Qyuan    时间: 2025-10-15 20:15
zjxitcc 发表于 2025-10-15 18:10
你那么写是不合理的。需要这样
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=64

嗯嗯,我试下,太感谢您了
作者
Author:
Qyuan    时间: 2025-10-17 16:24
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.




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