如何解决OSU 单向带宽测试中的缓存缺失
我们正在为 OSU 单向带宽基准测量发送方 MPI_Isend()+MPI_Waitall()
和接收方 MPI_Irecv()+MPI_Waitall()
中的缓存未命中。令人惊讶的是,当使用 8KB
和 16KB
时,Intel MPI 2017.4
消息大小的缓存未命中超过了 Intel compiler 2017.4
消息大小的缓存未命中。我们使用分析器 TAU 捕获缓存未命中。下面是一些捕捉这种奇怪行为的图表:
我们已经排除了 Eager-Rendezvous 切换的影响,因为默认 I_MPI_EAGER_THRESHOLD
是 256 KB
,并且由于消息大小小于 pre 的默认大小而重新分配预先注册的缓冲区-注册缓冲区(对于英特尔 MPI,大约为 23.5 KB)。
任何见解都是有价值的。谢谢!
附加 1:通信是在与英特尔 OPA 连接的节点之间进行的,最大带宽为 100 Gbits/sec
。
补充 2:我们怀疑英特尔 OPA 的默认 Path MTU size of 8 KB
与它有“某种关系”,但仍然存在关于为什么缓存的问题- 大小为 16 KB 的消息的未命中小于 8 KB。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。