谈谈MPI的就绪通信和缓冲通信

我们在MPI 通信模式里面最感受到的精华就是是否依赖与接收进程 那么现在我们来谈谈这个特性
依赖接收进程 那么发送那端就使用无缓冲方式通信 这样的方式可以大大改善其性能 比如标准通信 这种模式 添加了缓冲区 但是它的安全性能得到了保障 随时可以实现点对点同步通信 但是就绪通信 他非得等到接收进程recv之后才可以进行发送 但是这种依赖导致了效率极大的提升 跨过了三次握手 还要缓冲操作 相当于UDP 和TCP 通信区别 标准模式的情况 MPI_Send 总会发送信息 然后缓冲到缓存区 然后立刻返回MPI_Send函数调用 之后等待MPI_Recv端启动 然后立即发送 这个情况下其实也就是相当于 实现了同步操作 反是依赖于接收进程 那么就是不需要缓冲区 这种模式 依赖久相反
继续说说并发 其实在mpi中会存在发送和接收顺序的不一致 这个时候我们使用的就是同步通信 MPI_Ssend 或者实现同步通信的一致效果的方式 其实这种情况我们也可以使用就绪通信 但是我们需要确保语义顺序的一致 但是高并发往往使用MPI_ANY_SOURCE 进行通信 所以使用同步更妥善点
其实 我们实现最好的通信安全性 最好使用无缓冲机制 因为有缓冲机制会导致缓冲不够 等等一些 网络流不稳定的特点 所以使用无缓冲的方式最好 这种程序换成有缓冲也可以实现同样的效果 可移植性最好 但是性能不一定最优 所以我们需要去了解非阻塞的通信方式 这种方式性能会更高的提升 不会像同步通信那种方式 有缺陷

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值