【问题标题】:Tools to measure MPI communication costs [closed]衡量 MPI 通信成本的工具 [关闭]
【发布时间】:2012-05-23 09:05:33
【问题描述】:

我正在使用 MPI,我想测量通信成本,以便我可以将它们与“处理”成本进行比较,例如,我需要多长时间才能将列表分散到 n 个进程然后进行比较我需要多少时间来整理它。

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

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

提前致谢!

【问题讨论】:

    标签: performance communication mpi


    【解决方案1】:

    是的,有很多这样的工具。 MPI 定义了一个工具接口,允许其他库在您的 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 集成以进行详细的跟踪分析。

    【讨论】:

    • 我会添加来自德累斯顿工业大学和英特尔跟踪分析器和收集器的Vampir。两者都来自同一个祖先,并且是用于 MPI 和 OpenMP 跟踪性能分析的出色而复杂的工具,但不幸的是已获得商业许可。 Scalasca 是开源的,但并不真正适合低级详细分析,因此它与 Vampir 集成(集成需要有效的 Vampir 许可证)。 XMPI 曾经与 LAM 一起分发,但由于 LAM 与 Open MPI 合并,因此没有积极开发。
    • 是的,它们很棒;我主要没有添加它们,因为它们是商业的。您认为将其更改为社区 wiki 并让每个人都添加他们的建议会有用吗?
    • 哇!非常感谢你们俩!还有一个问题,因为我更喜欢在我正在使用的集群中进行测量并且我没有管理员权限,是否可以在我的目录中安装其中一个程序?除了已经安装的 mpiP。 IPM 似乎可以在没有管理员权限的情况下安装,对吗?谢谢!
    • @dx_mrt:我认为原则上它们都应该可以在没有管理员权限的情况下安装,除非 ITAC 使用内核模块来做某事。许多配置脚本假定您是 root 并且正在写入 /usr 或类似的,但是通过安装到另一个前缀(例如,您的主目录),您应该没问题。 IPM 肯定没问题。
    • 我还把它做成了一个wiki,这样人们就可以添加我错过的其他工具;我会让@HristoIliev 添加 ITAC / Vampir。
    猜你喜欢
    • 2017-04-03
    • 2015-07-09
    • 2010-10-22
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多