Skip to main content

exp1: MPI 异步通信

Course WorkIntroduction to High Performance ComputingMPIAbout 1 minAbout 364 words

任务一

编号消息长度计算量总耗时
11638400.203542 ms
23276800.431834 ms
36553600.658495 ms
413107201.17202 ms
526214401.97818 ms
652428803.79249 ms
7104857607.23377 ms
82097152014.1605 ms
94194304028.2017 ms
108388608056.3029 ms
11167772160113.967 ms
12335544320224.596 ms
  • 每次消息长度是倍增的,总耗时的变化趋势是如何的?

总耗时近似与消息长度呈近似的正比关系.

  • 为什么会有这样的趋势?

带宽存在上限. 因此消息长度越长, 发送所需的时间越长, 且通信速度稳定的情况下近似成正比.

任务二

编号消息长度计算量mpi_sync 总耗时mpi_async 总耗时
110000000010774.084 ms664.895 ms
210000000020866.185 ms662.789 ms
3100000000401073.73 ms695.044 ms
4100000000801518.8 ms800.207 ms
51000000001602277.11 ms1600.32 ms
  • 通信时间和计算时间满足什么关系时,非阻塞通信程序能完美掩盖通信时间?

当通信时间小于计算时间时, 非阻塞通信程序能完美掩盖通信时间.

  • 简述两份代码的不同之处。

mpi_sync 在等待消息发送完成后才进行计算, 而 mpi_async 在调用 MPI_Isend 后不等待消息发送, 而是立刻进行计算, 计算完成后再等待消息发送完毕.