MPI学习-MPI_Sendrecv and MPI_Sendrecv_replace

死锁现象:点对点通信中存在死锁现象:

死锁现象

MPI_Send 与MPI_Recv

1.MPI_Send调用返回时表明数据已被发出或被MPI系统复制,随后对发送缓冲区的修改不会改变所发送的数据;

2.MPI_Recv返回时表明数据接收已经完成;

3.让计算和通信重叠进行,通常先等待receive的完成,然后做计算,再等待send的完成。

4.需要采用MPI_Test()检测传输是否结束时;

5.MPI_Send可以以两种不同的方式实现:

  • 将消息复制到MPI设置的缓冲区并返回;
  • 直到对应的MPI_Recv出现前都阻塞

6.造成死锁的最大因素在于多个进程同时发出消息,再同时接收消息;

  • 因为若是每个进程都阻塞在MPI_Send上,则没有程序调用MPI_Recv,程序则会死锁

7.解除死锁可以使一些进程先接收消息再发送消息。

MPI_Sendrecv and MPI_Sendrecv_replace

可以自动实现数据交换,解除死锁问题.

语法规范

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值