mpi学习日志(3):mpi4py与广播

前面我们学习了点对点通信,那是关于两个点的通信.今天,我们学习多个点之间的通信.首先,我们学习广播.

所谓广播,就是说某个进程要向其他所有进程发送数据,而不是单独某个进程.


显然,一次的广播可以等价为许多次的点对点通信,我们可以用学过的send和recv去实现广播.


代码:



运行结果:



我们看见,5个进程中,除了要广播的进程0,后面4个进程都收到了进程0发送的一个列表.


效率?

但这样就完了吗?这样实现有什么问题?答案是效率.

用时间复杂度去说话,假设拷贝一份数据是O(1)复杂度,有n个进程.那么后面4个进程的时间复杂度是O(1),而进程0的时间复杂度是O(n).

在单机上跑这n个进程好像这没什么所谓,CPU始终在工作,时间复杂度也是O

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值