MPI集体通信与进程管理详解
1. 集体通信操作
在消息传递编程中,集体通信操作是非常重要的一部分。集体通信操作的效果是,属于通信器 comm 组的所有进程都会被阻塞,直到该组的所有其他进程也调用了此操作。
1.1 非阻塞集体通信操作
MPI不仅支持阻塞的集体通信操作,还支持非阻塞集体通信操作,这使得通信和计算能够重叠进行。非阻塞集体通信操作的使用模式与非阻塞点对点操作相同。调用非阻塞集体操作会在本地启动相应的操作,并且需要一个单独的完成操作来测试该操作是否已在本地完成。
具体来说,调用非阻塞集体通信操作会立即将控制权返回给调用进程,指定的通信操作会在后台执行。在后台通信期间,调用进程可以执行其他本地计算操作,从而实现通信和计算的重叠。不过,只有在完成操作返回后,才能安全地覆盖调用进程为通信操作提供的缓冲区资源。
一个进程可以依次发出多个非阻塞集体操作,并且多个非阻塞集体操作可以同时处于未完成状态。对于非阻塞集体通信操作,使用与非阻塞点对点操作相同的完成操作,如 MPI Test() 或 MPI Wait() 。完成后,非阻塞集体操作对进程间数据移动的影响与其阻塞对应操作相同。
下面给出两个非阻塞集体通信操作的例子:
- 非阻塞广播操作 :通过以下MPI调用启动:
int MPI_Ibcast (void *message,
int count,
MPI_Da
超级会员免费看
订阅专栏 解锁全文

58

被折叠的 条评论
为什么被折叠?



