问个 mpi 多机并行编程的问题。

2017-05-05 16:53:31 +08:00
 mhjyzs

用 mpich 搭建了一个两台配置一样的机器组成的环境,进行奇偶并行排序,输入数据是 256M 个 double 类型的倒序的一个数据,数据大概是 2G 左右,为什么在单机上 2 个进程排序的速度会比两台机器 2 个进程的速度快 10 多倍!!!?难道是因为在两台机器上机器间的传输占据了大部分时间?

1417 次点击
所在节点    问与答
3 条回复
coderluan
2017-05-05 18:01:41 +08:00
你自己输出些时间点不就知道了时间都耗费到哪了吗,何必让每看见代码的人帮你瞎猜呢。
ryd994
2017-05-05 18:09:55 +08:00
机器之间有多少带宽,自己算一算,这是底线
延迟多少?延迟大又不注意设计同步机制,那就坑了。
代码呢?你 MPI 怎么用的不看代码怎么知道?
ryd994
2017-05-05 18:20:21 +08:00
内存带宽怎么说都有好几 GB/s 呢
网络你是百兆还是千兆?有没有其他机器在同一网段
就算最好最好,也就 125MB/s,更何况 TCP 流控不适应这种瞬间大流量
所以很多超算用的是 infiniband 或者私有 torus 网络

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359388

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX