mpi4py 点到点通信之可重复的非阻塞标准通信

本文详细介绍了如何在mpi4py中使用可重复的非阻塞通信,重点关注可重复非阻塞标准通信模式。通过MPI.Prequest对象控制通信请求,减少交互开销,提高程序效率。文章展示了不同通信模式的使用方法,并通过实例代码解释了可重复非阻塞发送如何与各种接收动作匹配,以及如何启动重复通信操作。
摘要由CSDN通过智能技术生成

本文从本人简书博客同步过来

上一篇中我们介绍了 mpi4py 中非重复非阻塞同步通信模式,下面我们将介绍可重复的非阻塞通信,我们先从可重复的非阻塞标准通信开始。

在实际的计算环境中,经常会在一个内部循环中重复使用相同的数据结构来传递不同的数据,此时将数据结构与发送/接收动作绑定可提高程序的效率,这可以通过可重复的非阻塞通信实现。重复的通信需借助通信请求对象 MPI.Prequest(MPI.Request 的子类对象)进行控制其发起、完成等。这样处理可减少 MPI 环境通信控制器与进程之间进行交互的开销。

可重复的非阻塞通信也有4个模式,即标准、缓冲、就绪和同步模式,这4个通信模式是与阻塞通信非重复非阻塞通信的4个模式一一对应的。可重复的非阻塞通信的4个模式用到的(MPI.Comm 类)发送方法分别为 Send_int,Bsend_int,Rsend_int 和 Ssend_init,相应的接收方法为 Recv_int,用来管理重复启动通信的操作方法是 MPI.Prequest.Start,MPI.Prequest.Startall。注意:可重复的非阻塞通信只有以大写字母开头的方法,而没有提供与之对应的小写字母开头的方法,因此如果要发送和接收通用的 Python 对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值