如何解决mpirun 在一定数量的进程上崩溃
在尝试使用 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
在尝试对此进行研究后,我了解到这与进程用完文件描述符有关,而且似乎最常见的解决方案表明文件未正确关闭。但是,我的问题是,我没有打开任何文件?我的脚本只是:
print('I am process:',rank)
那么问题可能出自这里吗?
解决方法
我似乎找到了一个小小的解决方法。
我在 Mac 上工作,所以我假设早些时候我能够保持在操作系统设置的特定默认数量下的文件限制。通过配置最大文件限制,我能够绕过我最初达到的限制数量,导致我的程序崩溃。
这个修复并不理想,因为我的脚本现在需要很长时间才能运行,但在我找到更好的修复之前它至少是一个临时的。
如果有人想尝试这个,我找到的解决方案是由@tombigel 在 GitHub 上发布的,可以在 here 上找到。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。