在我的openmpi (为infiniband使用编译)代码中有一个位置,其中没有进度输出,其中一个进程的strace显示如下:
poll([{fd=5, events=POLLIN}, {fd=14, events=POLLIN}, {fd=23, events=POLLIN}], 3, 0) = 0 (Timeout)一遍又一遍。根据这个问题,我运行了ls -l /proc/<pid>/fd,我看到了几个socket和/dev/infiniband/链接。此系统调用是否表示通过infiniband进行进程间通信?我如何验证这一点或进一步调试此时代码中正在发生的事情?
发布于 2015-08-21 10:33:13
轮询只在超时的情况下返回,这意味着进程正在等待某个通信事件的发生。此公开常见问题解答页列出了一些调试方法。
https://stackoverflow.com/questions/32120155
复制相似问题