计算化学公社

标题: mpirun无法并行运行cp2k [打印本页]

作者
Author:
Markmahao    时间: 2024-9-9 09:33
标题: mpirun无法并行运行cp2k
本帖最后由 Markmahao 于 2024-9-9 09:35 编辑

各位老师好,
如题,服务器突然出现了mpirun -np 36 cp2k.popt x.inp |tee x.log无法并行计算的问题。报错信息如下:
HYDU create_process (lib/utils/launch.c:73): execvp  error on file cp2k.popt (No such file or directory)

但是我再加上绝对路径之后,比如:mpirun -np 36 ./cp2k.popt x.inp |tee x.log,所有的核会独立运行同一个x.inp文件,最终报错:
BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
PID 9445 RUNNING AT
EXIT CODE:9
CLEANING UP REMAINING PROCESSES
YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Killed (signal 9)
This typically refers to a problem with your application.
Please see the FAo page for debugging suggestions.

请问各位老师这个原因是什么?我感觉是mpirun的问题,但如何解决呢?



作者
Author:
snljty2    时间: 2024-9-9 09:41
当前 Shell 在加载 CP2K 环境后加入 `echo $MPIRUN`显示什么?检查编译 CP2K 的 MPI 和使用时候的 mpirun 是不是来自同一个 MPI,是否有人改了 .bashrc 之类的文件指定了让别的 MPI 优先级更高?
作者
Author:
乐平    时间: 2024-9-9 09:41
你运行 cp2k 之前没有 source cp2k 的环境?

另外,./cp2k.popt 也不是你的绝对路径啊……

作者
Author:
Markmahao    时间: 2024-9-9 10:47
乐平 发表于 2024-9-9 09:41
你运行 cp2k 之前没有 source cp2k 的环境?

另外,./cp2k.popt 也不是你的绝对路径啊……

嗯 但改成绝对路径也是同样的问题,36个核心在单独计算同一个文件,不是并行的
作者
Author:
Markmahao    时间: 2024-9-9 10:53
乐平 发表于 2024-9-9 09:41
你运行 cp2k 之前没有 source cp2k 的环境?

另外,./cp2k.popt 也不是你的绝对路径啊……

我试过了,啥也没输出
作者
Author:
Dempey    时间: 2024-9-9 10:57
本帖最后由 Dempey 于 2024-9-9 11:00 编辑

(, 下载次数 Times of downloads: 100)
你的任务是这样的吗,应该同时出现36个cp2k.popt
作者
Author:
Markmahao    时间: 2024-9-9 13:54
Dempey 发表于 2024-9-9 10:57
你的任务是这样的吗,应该同时出现36个cp2k.popt

是的,以这个图的文件为例的话:不是在并行的算一个,而是单核平行的算36个1.inp
作者
Author:
Dempey    时间: 2024-9-9 14:02
Markmahao 发表于 2024-9-9 13:54
是的,以这个图的文件为例的话:不是在并行的算一个,而是单核平行的算36个1.inp

不是的,你看看输出文件
  1. DBCSR| CPU Multiplication driver                                           XSMM (U)
  2. DBCSR| Multrec recursion limit                                              512 (U)
  3. DBCSR| Multiplication stack size                                           1000 (D)
  4. DBCSR| Maximum elements for images                                    UNLIMITED (U)
  5. DBCSR| Multiplicative factor virtual images                                   1 (U)
  6. DBCSR| Use multiplication densification                                       T (D)
  7. DBCSR| Multiplication size stacks                                             3 (U)
  8. DBCSR| Use memory pool for CPU allocation                                     F (U)
  9. DBCSR| Number of 3D layers                                               SINGLE (U)
  10. DBCSR| Use MPI memory allocation                                              F (U)
  11. DBCSR| Use RMA algorithm                                                      F (U)
  12. DBCSR| Use Communication thread                                               T (U)
  13. DBCSR| Communication thread load                                             87 (D)
  14. DBCSR| MPI: My process id                                                     0
  15. DBCSR| MPI: Number of processes                                              56
  16. DBCSR| OMP: Current number of threads                                         1
  17. DBCSR| OMP: Max number of threads                                             1
  18. DBCSR| Split modifier for TAS multiplication algorithm                  1.0E+00 (U)
复制代码

MPI rank有56个,不是有56个单核任务
作者
Author:
Markmahao    时间: 2024-9-9 14:24
Dempey 发表于 2024-9-9 14:02
不是的,你看看输出文件

MPI rank有56个,不是有56个单核任务

mpirun -np 36 ./cp2k.popt x.inp |tee x.log
都是1
DBCSR| MPI: Number of processes                                              1
DBCSR| OMP: Current number of threads                                         1
DBCSR| OMP: Max number of threads                                             1
作者
Author:
Dempey    时间: 2024-9-9 14:30
Markmahao 发表于 2024-9-9 14:24
mpirun -np 36 ./cp2k.popt x.inp |tee x.log
都是1
DBCSR| MPI: Number of processes                 ...

你可以把你在集群上的提交脚本和输入文件(要是可以的话)发来,大家看看有什么不妥
作者
Author:
Markmahao    时间: 2024-9-9 15:48
本帖最后由 Markmahao 于 2024-9-9 15:53 编辑
Dempey 发表于 2024-9-9 14:30
你可以把你在集群上的提交脚本和输入文件(要是可以的话)发来,大家看看有什么不妥

谢谢,您提到的rank=56才让我注意到是这个问题。如果环境中有很多mpi就会导致rank=0 size永远是1的情况。
作者
Author:
Markmahao    时间: 2024-9-9 15:49
snljty2 发表于 2024-9-9 09:41
当前 Shell 在加载 CP2K 环境后加入 `echo $MPIRUN`显示什么?检查编译 CP2K 的 MPI 和使用时候的 mpirun  ...

您好,确实是这个原因。anaconda的mpicc和cp2k的环境发生了冲突。换上原来的环境后恢复正常,非常感谢!




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