我的应用程序执行一对一的单面通信(每台机器都与所有其他机器进行有效通信)
我正在观察网络带宽中的性能瓶颈,以及如果我可以减少带宽使用情况,将有些通信部分转移到集体呼叫。
如果我使用MPI集体而不是单向通信呼叫怎么办?它能否降低总网络带宽利用率?这将取决于MPI的实施; (我在Mellanox Infiniband上使用英特尔MPI。)
如果Infiniband的RDMA支持带宽有效的广播或多播功能,MPI将直接从中受益。
以下是我目前使用单面通信的一部分,可以通过定义子组将其更改为MPI_BCast。
In each process,
For i in [1, ..., k]
MPI_RGet (buf[i], my_rank + i);
由于