mpirun 在一定数量的进程上崩溃

mpirun crashing on certain amount of processes

尝试使用 MPI 运行 一个简单的“hello world”程序时遇到一个奇怪的问题。

我最终想为我在 python 中编写的这个 MPI 脚本使用 100 个进程,甚至能够 运行 早些时候使用多达 100 个进程进行 hello world 测试。但是,现在当我尝试 运行 具有 ~50 个进程的脚本时,我一直遇到同样的错误。

我看到的具体错误似乎是这样说的:

ORTE_ERROR_LOG: The system limit on number of network connections a process can open was reached in file util/listener.c at line 321

在尝试对此进行研究后,我了解到它与文件描述符中 运行ning 的进程有关,而且最常见的解决方案似乎是文件未正确关闭。但是,我的问题是,我没有打开任何文件?我的脚本是:

print('I am process:', rank)

那么问题可能源于这里?

我似乎找到了一个小的解决方法。

我正在研究 Mac,所以我假设早些时候我能够保持在我的文件限制之下,即 OS 设置的某个默认数量。通过配置最大文件限制,我能够绕过最初达到的限制数量,导致我的程序崩溃。

此修复并不理想,因为我的脚本现在需要相当长的时间 运行,但这至少是一个临时修复,直到我找到更好的修复。

如果有人想尝试这个,我找到的解决方案是由@tombigel 在 GitHub 上发布的,可以在 here.

上找到