计算化学公社

标题: PySCF的并行效率问题 [打印本页]

作者
Author:
生煎小馒头    时间: 2025-3-20 12:28
标题: PySCF的并行效率问题
  在使用集群的slurm调度系统进行PySCF计算的时候,计算节点是AMD EPYC 9A14 96-Core Processor 192核芯片,内存755GB,使用conda创建的环境,发现两个问题:
1. 内存报错,单节点使用500G内存跑任务,在其他单节点512G服务器可以跑,在本服务器会killed -9,且并行多节点也没有好的效果
2. python的运行会大量重复输出,之前用mpi4py,通过限制只输出rank 0,并没有奏效。
  如果我没给定restart的精确初猜,让pyscf自己跑,第一个问题跑第一步scf就会出现,第二个问题是只要运行.py就会出现
附上百度网盘链接: 通过网盘分享的文件:pyscf
链接: https://pan.baidu.com/s/1AK2WuN063N1Gu3I5N9ejdA?pwd=q53x 提取码: q53x
--来自百度网盘超级会员v3的分享
.py文件为测试文件,runlog为输出日志文件,sub_python.job.bak为提交作业的输入文件,请问这种情况是什么原因导致的


作者
Author:
hebrewsnabla    时间: 2025-3-20 14:31
pyscf根本不是用mpirun运行的。pyscf本体都不支持mpi。
作者
Author:
生煎小馒头    时间: 2025-3-20 14:46
hebrewsnabla 发表于 2025-3-20 14:31
pyscf根本不是用mpirun运行的。pyscf本体都不支持mpi。

那请问老师我该用什么来运行呢
作者
Author:
hebrewsnabla    时间: 2025-3-20 14:53
生煎小馒头 发表于 2025-3-20 14:46
那请问老师我该用什么来运行呢

python啊
作者
Author:
生煎小馒头    时间: 2025-3-20 14:56
hebrewsnabla 发表于 2025-3-20 14:53
python啊

谢谢老师我按您的方法尝试一下
作者
Author:
生煎小馒头    时间: 2025-3-20 17:03
hebrewsnabla 发表于 2025-3-20 14:53
python啊

您好,老师。我用python运行后会出现以下b报错:/public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site-packages/pyscf/df/outcore.py:160: RuntimeWarning: overflow encountered in scalar multiply
  naoaux*nao_pair*8/1e6, comp*buflen*naoaux*8/1e6)
/public/home/fanyi/usual_python_code/usual_code_wandd.py:439: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
  if show: plt.show()
[cu03:3791588:0:3791588] Caught signal 11 (Segmentation fault: invalid permissions for mapped object at address 0x7fc4141cb000)
==== backtrace (tid:3791588) ====
0  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site-packages/mpi4py/../../.././libucs.so.0(ucs_handle_error+0x305) [0x7fc5554f2015]
1  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site-packages/mpi4py/../../.././libucs.so.0(+0x2f214) [0x7fc5554f2214]
2  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site-packages/mpi4py/../../.././libucs.so.0(+0x2f3da) [0x7fc5554f23da]
3  /lib64/libpthread.so.0(+0x12dd0) [0x7fc6adbefdd0]
4  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site-packages/pyscf/lib/libnp_helper.so(NPdunpack_tril+0x43) [0x7fc6099b8d03]
5  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site-packages/pyscf/lib/libao2mo.so(AO2MOtranse2_nr_s2kl+0x73) [0x7fc55bcd0e83]
6  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site-packages/pyscf/lib/libao2mo.so(AO2MOnr_e2_drv+0xbe) [0x7fc55bcd147e]
7  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/lib-dynload/../../libffi.so.8(+0x6d8a) [0x7fc6ade38d8a]
8  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/lib-dynload/../../libffi.so.8(+0x61cd) [0x7fc6ade381cd]
9  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/lib-dynload/../../libffi.so.8(ffi_call+0xcd) [0x7fc6ade3891d]
10  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/lib-dynload/_ctypes.cpython-310-x86_64-linux-gnu.so(+0x12461) [0x7fc60a9f7461]
11  /public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/lib-dynload/_ctypes.cpython-310-x86_64-linux-gnu.so(+0x86eb) [0x7fc60a9ed6eb]
12  python(_PyObject_MakeTpCall+0x26b) [0x56115f3e097b]
13  python(_PyEval_EvalFrameDefault+0x4eba) [0x56115f3dc2ca]
14  python(_PyObject_FastCallDictTstate+0xd0) [0x56115f3dfe60]
15  python(+0x14df41) [0x56115f3f0f41]
16  python(_PyObject_MakeTpCall+0x27b) [0x56115f3e098b]
17  python(_PyEval_EvalFrameDefault+0x4eba) [0x56115f3dc2ca]
18  python(_PyFunction_Vectorcall+0x6c) [0x56115f3e78cc]
19  python(_PyEval_EvalFrameDefault+0x72c) [0x56115f3d7b3c]
20  python(_PyFunction_Vectorcall+0x6c) [0x56115f3e78cc]
21  python(_PyEval_EvalFrameDefault+0x13cc) [0x56115f3d87dc]
22  python(_PyFunction_Vectorcall+0x6c) [0x56115f3e78cc]
23  python(_PyEval_EvalFrameDefault+0x72c) [0x56115f3d7b3c]
24  python(+0x1d7870) [0x56115f47a870]
25  python(PyEval_EvalCode+0x87) [0x56115f47a7b7]
26  python(+0x207d1a) [0x56115f4aad1a]
27  python(+0x203123) [0x56115f4a6123]
28  python(+0x9a4d1) [0x56115f33d4d1]
29  python(_PyRun_SimpleFileObject+0x1ae) [0x56115f4a060e]
30  python(_PyRun_AnyFileObject+0x44) [0x56115f4a01a4]
31  python(Py_RunMain+0x38b) [0x56115f49d39b]
32  python(Py_BytesMain+0x37) [0x56115f46de17]
33  /lib64/libc.so.6(__libc_start_main+0xf3) [0x7fc6ad0b46a3]
34  python(+0x1cad11) [0x56115f46dd11]
=================================
/var/spool/slurm/d/job01460/slurm_script: line 15: 3791588 Segmentation fault      (core dumped) python *.py > runlog
作者
Author:
生煎小馒头    时间: 2025-3-20 17:03
hebrewsnabla 发表于 2025-3-20 14:53
python啊

看着内存溢出,是不是我环境有问题
作者
Author:
hebrewsnabla    时间: 2025-3-20 17:13
生煎小馒头 发表于 2025-3-20 17:03
您好,老师。我用python运行后会出现以下b报错:/public/home/fanyi/.conda/envs/mpi_env/lib/python3.10 ...

删掉mpi4py相关的代码。这是哪里学来的……
作者
Author:
生煎小馒头    时间: 2025-3-20 17:52
hebrewsnabla 发表于 2025-3-20 17:13
删掉mpi4py相关的代码。这是哪里学来的……

因为我想要并行计算,所以在网上翻阅资料,所以加入mpi4py代码,那老师如果我想要并行的话还需要别的环境吗,恳请老师解惑,谢谢老师
作者
Author:
生煎小馒头    时间: 2025-3-20 17:54
生煎小馒头 发表于 2025-3-20 17:52
因为我想要并行计算,所以在网上翻阅资料,所以加入mpi4py代码,那老师如果我想要并行的话还需要别的环境 ...

删除刚刚您说的mpi4py代码又出现以下报错:/public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site-packages/pyscf/df/outcore.py:160: RuntimeWarning: overflow encountered in scalar multiply
  naoaux*nao_pair*8/1e6, comp*buflen*naoaux*8/1e6)
/public/home/fanyi/usual_python_code/usual_code_wandd.py:439: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
  if show: plt.show()
/var/spool/slurm/d/job01483/slurm_script: line 15: 2474757 Segmentation fault      (core dumped) python *.py > runlog                                                                                                                                             这种我也没整明白,这种情况应该如何解决呢?
麻烦老师指点一下迷津,太感谢了

作者
Author:
hebrewsnabla    时间: 2025-3-20 19:03
生煎小馒头 发表于 2025-3-20 17:54
删除刚刚您说的mpi4py代码又出现以下报错:/public/home/fanyi/.conda/envs/mpi_env/lib/python3.10/site- ...

这个bug在2.8版本已经修复了。
作者
Author:
hebrewsnabla    时间: 2025-3-20 19:04
生煎小馒头 发表于 2025-3-20 17:52
因为我想要并行计算,所以在网上翻阅资料,所以加入mpi4py代码,那老师如果我想要并行的话还需要别的环境 ...

from pyscf import lib
lib.num_threads(n)

n 是openmp线程数。




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