performance - 衡量 MPI 通信成本的工具

标签 performance communication mpi

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




我正在使用 MPI,我想测量通信成本,以便我可以将它们与“处理”成本进行比较,例如,我需要多少时间将列表分散到 n 个进程中,然后将其与多少时间进行比较是时候我需要对其进行排序了。

有谁知道任何衡量这种沟通成本的工具? (例如散点图)

是否有任何东西可以测量 MPI 通信成本,例如 PAPI 来分析代码性能?

提前致谢!

最佳答案

是的,有很多这样的工具。 MPI 定义了一个工具接口(interface),允许其他库在您的 MPI 函数调用中插入自己,并执行计数、计时等。

一个非常小的 MPI 分析工具是 mpiP - 它提供了代码中 MPI 事件的非常简短的摘要。

IPM库相当容易构建,并为您提供大量 MPI 计数和时间,并因此提供了一个不错的 HTML 文件。你提到了PAPI;如果可用,IPM 还将集成 PAPI 计数器。我们在我们的中心经常使用它,我认为这会做你喜欢的。如果您使用 MPI 的动态库构建程序,您甚至不需要重新编译即可使用它(mpiP 具有相同的属性)。

Jumpshot ,它与 MPICH2 一起提供,但可以使用任何 MPI 构建,实际上在时间线上显示了每个 MPI 操作花费了多长时间。

OpenSpeedshop提供非常详细的代码性能测量,特别突出“昂贵”的行;它还具有 MPI 跟踪模式,可通过代码行识别 MPI 时间。安装可能很棘手。

在频谱的商业部分有 Vampir来自德累斯顿工业大学和英特尔跟踪分析器和收集器 (ITAC)。 Vampir 使用开源 VampirTrace 库收集源级、MPI 和 OpenMP 跟踪,该库还与 PAPI 集成以提供详细的事件和计数器跟踪。 VampirTrace 的踪迹采用 Open Trace 格式,除了 Vampir 之外,其他各种工具都可以读取它。

ITAC 是 Intel Cluster Studio XE 的一部分.它主要设计用于与英特尔 MPI 一起使用,并与 Vampir 共享相同的祖先代码,提供或多或少相同的功能。它的一个不错的功能是包含的自动运行时 MPI 正确性检查器。

Allinea MAP是来自 Allinea 的 MPI 分析器,它通过集成的源浏览器提供性能分析,该浏览器在源代码的各个行旁边显示通信/计算成本。它还显示了性能信息的高级图表,包括内存、CPU 指令和通信。

但是还有其他更高级别的工具,它们不仅提供报告,而且实际上提供建议。 TACC 的 perfexpert 是一个基于命令行的工具,它进行大量测量并提供一些性能调整建议。 Scalasca Jülich 使用大量源代码级工具重新编译您的代码,并且可以指出负载不平衡,特别是昂贵的 MPI 集合等。它还可以与 Vampir 集成以进行详细的跟踪分析。

关于performance - 衡量 MPI 通信成本的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10607750/

相关文章:

fortran - 构建MPI程序时出错

java - Android - 在一部手机上压缩位图非常慢,在另一部手机上很快

javascript - Sails 套接字不会重新连接

c - 缓慢的 pthreads,似乎不仅仅是开销

java - 套接字通信: Thread hangs

.net - 层与层之间的 n-Tier 应用程序应该如何进行通信?

计算给定约束下可能的密码数量

c++ - 在 MPI_Scatter() 问题中设置位移数组

相同限制的 MySQL SELECT 查询越来越慢

multithreading - 如何在 apache jmeter 中为组线程请求设置不同的 header ?