在 MPI 并行程序中处理 I/O 的一种典型方式是要么将所有数据读取到单个节点并相应地分派到其他节点,要么将所有数据发送到单个节点并从该节点写入。
我目前使用阻塞通信。
由于“主”进程一次只能与一个节点通信,因此大多数节点都陷入了阻塞通信步骤:它们在等待主节点发送/接收时基本上“什么都不做”。这是完全可以理解的。
但是,当我使用“top”查看 CPU 使用率时,程序的所有副本都有完整的 99 - 100% 的 CPU 使用率。这意味着(与我最初的猜测相反)等待通信的另一端不是占用相当少 CPU 的“空闲任务”,而是“忙碌”任务。
如何减少这些“等待”节点的 CPU 使用率?非阻塞通信在这里相关吗?
感谢您的任何回答,