MPI:为什么我的MPICH程序在大量进程中失败?

MPI:为什么我的MPICH程序在大量进程中失败?,mpi,mpich,Mpi,Mpich,您的系统上正在运行打开的文件限制。Ubuntu的默认值是1024。您可以尝试使用ulimit命令提高会话中的限制 root@ubuntu:/home# mpiexec -n 1000 ./hello [proxy:0:0@ubuntu] HYDU_create_process (./utils/launch/launch.c:26): pipe error (Too many open files) [proxy:0:0@ubuntu] launch_procs (./pm/pmiserv/pm

您的系统上正在运行打开的文件限制。Ubuntu的默认值是1024。您可以尝试使用ulimit命令提高会话中的限制

root@ubuntu:/home# mpiexec -n 1000 ./hello
[proxy:0:0@ubuntu] HYDU_create_process (./utils/launch/launch.c:26): pipe error (Too many open files)
[proxy:0:0@ubuntu] launch_procs (./pm/pmiserv/pmip_cb.c:751): create process returned error
[proxy:0:0@ubuntu] HYD_pmcd_pmip_control_cmd_cb (./pm/pmiserv/pmip_cb.c:935): launch_procs returned error
[proxy:0:0@ubuntu] HYDT_dmxu_poll_wait_for_event (./tools/demux/demux_poll.c:77): callback returned error status
[proxy:0:0@ubuntu] main (./pm/pmiserv/pmip.c:226): demux engine error waiting for event
Killed

您能否详细说明打开文件的限制与可以启动的进程数之间的关系?对于初学者来说,运行1000个进程意味着打开程序文件1000次。此外,还有其他库,程序需要执行,因此您可以看到它们如何快速添加到这么多进程中。
root@ubuntu:/home# mpiexec -n 1000 ./hello
[proxy:0:0@ubuntu] HYDU_create_process (./utils/launch/launch.c:26): pipe error (Too many open files)
[proxy:0:0@ubuntu] launch_procs (./pm/pmiserv/pmip_cb.c:751): create process returned error
[proxy:0:0@ubuntu] HYD_pmcd_pmip_control_cmd_cb (./pm/pmiserv/pmip_cb.c:935): launch_procs returned error
[proxy:0:0@ubuntu] HYDT_dmxu_poll_wait_for_event (./tools/demux/demux_poll.c:77): callback returned error status
[proxy:0:0@ubuntu] main (./pm/pmiserv/pmip.c:226): demux engine error waiting for event
Killed
ulimit -n 2048