用 mpich 搭建了一个两台配置一样的机器组成的环境,进行奇偶并行排序,输入数据是 256M 个 double 类型的倒序的一个数据,数据大概是 2G 左右,为什么在单机上 2 个进程排序的速度会比两台机器 2 个进程的速度快 10 多倍!!!?难道是因为在两台机器上机器间的传输占据了大部分时间?
1
coderluan 2017-05-05 18:01:41 +08:00
你自己输出些时间点不就知道了时间都耗费到哪了吗,何必让每看见代码的人帮你瞎猜呢。
|
2
ryd994 2017-05-05 18:09:55 +08:00
机器之间有多少带宽,自己算一算,这是底线
延迟多少?延迟大又不注意设计同步机制,那就坑了。 代码呢?你 MPI 怎么用的不看代码怎么知道? |
3
ryd994 2017-05-05 18:20:21 +08:00
内存带宽怎么说都有好几 GB/s 呢
网络你是百兆还是千兆?有没有其他机器在同一网段 就算最好最好,也就 125MB/s,更何况 TCP 流控不适应这种瞬间大流量 所以很多超算用的是 infiniband 或者私有 torus 网络 |