如何分析 NetPIPE 基准测试的结果

Howto analyze the results of the NetPIPE benchmark

我使用基准工具 NetPIPE 测量了两台 Raspberry Pi B 型单板计算机之间以太网的延迟和吞吐量。该基准测试在两个进程之间的一系列消息大小上进行测试。仅使用 TCP 作为端到端协议执行了一次,使用 Open MPI 消息传递层库执行了一次。

连接不是直接连接 link。非托管第 2 层交换机(10/100 Mbps 以太网)位于两个设备之间。

MTU=1500 字节。

这些数字表明,使用 MPI(也使用 TCP 作为传输层协议)是一种开销,会对吞吐量和延迟产生负面影响。使用 MPI 时测得的最佳吞吐量是 65 Mbit/s。仅使用 TCP 时,吞吐量高达 85 Mbit/s。

只要有效载荷适合单个 TCP 段,使用 MPI 时的延迟大约比仅使用 TCP 时差十倍。最大传输单元 (MTU) 指定以太网帧内的最大负载,在我们的集群中为 1500 字节。因此,指定 TCP 段内最大负载的最大段大小 (MSS) 为 1460 字节。

一些问题:

顺便说一句:以太网整体性能不佳可能是因为 Raspberry Pi 的 10/100 Mbit 以太网控制器在内部连接到 USB 2.0 集线器。

更新

性能下降,尤其是大约 4 MB 的负载大小可能是由于 Raspberry Pi 节点的 CPU 资源有限造成的。我用 htop 检查了 CPU 利用率,当 运行 MPI 基准时它几乎完全被利用了。

大约 512 KiB 的性能下降是由于 MPI 协议:

  • eager 模式 => 1 倍往返时间
  • rendevouz => 2 倍往返时间

参见:https://computing.llnl.gov/tutorials/mpi_performance/#EagerVsRendezvous 更改配置的默认点取决于所选的 MPI 实现。还有一些配置变量可以更改它,在您的情况下,您稍后应该从 eager 切换到 rendevouz。 额外的延迟导致性能再次缓慢提高,直到 1 MiB 传输大小。后来的性能下降我不清楚。