c - MPI 进程数

标签 c mpi mpich

我正在运行一个打印 hello world 的示例 MPI 程序。 当我运行 1,2....330 进程时,它按预期运行。 但是当数字超过 330 时,它会失败并出现以下错误。 有人能解释一下这是什么原因吗。 我在我的笔记本电脑上运行该程序,该笔记本电脑配备 4 核 i5 处理器和 8 GB RAM。

[proxy:0:0@Abhishek-Machine] HYDU_create_process (./utils/launch/launch.c:25): pipe error (Too many open files)
[proxy:0:0@Abhishek-Machine] launch_procs (./pm/pmiserv/pmip_cb.c:705): create process returned error
[proxy:0:0@Abhishek-Machine] HYD_pmcd_pmip_control_cmd_cb (./pm/pmiserv/pmip_cb.c:893): launch_procs returned error
[proxy:0:0@Abhishek-Machine] HYDT_dmxu_poll_wait_for_event (./tools/demux/demux_poll.c:77): callback returned error status
[proxy:0:0@Abhishek-Machine] main (./pm/pmiserv/pmip.c:206): demux engine error waiting for event
[mpiexec@Abhishek-Machine] control_cb (./pm/pmiserv/pmiserv_cb.c:202): assert (!closed) failed
[mpiexec@Abhishek-Machine] HYDT_dmxu_poll_wait_for_event (./tools/demux/demux_poll.c:77): callback returned error status
[mpiexec@Abhishek-Machine] HYD_pmci_wait_for_completion (./pm/pmiserv/pmiserv_pmci.c:197): error waiting for event
[mpiexec@Abhishek-Machine] main (./ui/mpich/mpiexec.c:331): process manager error waiting for completion

最佳答案

您正在达到套接字描述符或类似描述符的操作系统限制。过度订阅你的工作站到这个程度不是一个好主意并且不太可能工作,除非你改变你的系统设置(这对于这个用例来说不是一个好主意)。

关于c - MPI 进程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700274/

相关文章:

c - Linux 内核如何知道将输入事件写入哪个文件描述符?

types - 带 MPI 的派生数据类型

c - MPI 环首领选举返回段错误

c - MPICH:MPICC ld:找不到文件:/usr/local/lib/gcc/4.9/libgfortran.3.dylib for architecture x86_64

您可以使用 gdb(或其他工具)从核心文件中找到内存泄漏吗?

C - 标准输出打印顺序

mpi - 数据传输问题 : MPI_Isend followed by MPI_Probe and MPI_Recv

mpi - MPI、MPICH 和 OPENMPI 究竟是什么? "implementation"在这种情况下是什么意思?

c - 将 C 语言翻译成 Pascal

c - MPI 派生类型发送