测量 MPI 通信成本的工具 [已关闭]

2023-12-08

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

有谁知道有什么工具可以衡量这种沟通成本吗? (例如分散)

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

提前致谢!


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

一个非常小的 MPI 分析工具是mpiP- 它给出了代码中 MPI 活动的非常简短的摘要。

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

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

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

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

ITAC 是以下组织的一部分英特尔 Cluster Studio XE。它主要设计用于与 Intel MPI 配合使用,并与 Vampir 共享相同的祖先代码,提供或多或少相同的功能。其出色的功能之一是包含自动运行时 MPI 正确性检查器。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测量 MPI 通信成本的工具 [已关闭] 的相关文章

  • perfmon 性能计数器是否基于与 xperf 使用的 ETW 事件“幕后”相同的东西?

    我最近开始熟悉 perfmon 和 xperf Perfmon 使用性能计数器 xperf 使用 ETW Windows 事件跟踪 Perfmon 具有提供数据的对象 而 xperf 使用 提供者 组 作为这个领域的新手 我想问是否有人可以
  • 为什么将 std::endl 与 ostringstream 一起使用会影响输出速度?

    我正在计算将文本打印到标准输出的各种方法之间的差异 我正在测试cout printf and ostringstream两者同时使用 n and std endl 我期望std endl有所作为cout 确实如此 但我没想到它会减慢输出速度
  • matplotlib savefig 性能,在循环内保存多个 png

    我希望找到一种方法来优化以下情况 我有一个使用 matplotlib 的 imshow 创建的大型等高线图 然后 我想使用此等高线图来创建大量 png 图像 其中通过更改 x 和 y 限制以及长宽比 每个图像都是等高线图像的一小部分 因此
  • 需要更快的数组复制

    经过一些阅读后 我发现在 java 中复制数组的方式存在一些差异 对于我的应用程序 我有一个递归节点树 每个节点都包含一个 2d 板数组 8x8 通过探查器测试 我能想到的最好的办法是 java util Arrays copyOf arr
  • 有没有好的 Clojure 基准测试?

    Edit Clojure 基准测试已达到基准游戏 http benchmarksgame alioth debian org u64q clojure html 我已经制作了这个问题社区维基并邀请其他人保持更新 有人知道 Clojure 性
  • 为什么PostgresQL查询性能随着时间的推移而下降,但重建索引时又恢复了

    根据这个page http www postgresql org docs current static indexes examine html在手册中 indexes don t need to be maintained 然而 我们运
  • 为什么某些 float < integer 比较比其他比较慢四倍?

    将浮点数与整数进行比较时 某些值对的计算时间比类似大小的其他值要长得多 例如 gt gt gt import timeit gt gt gt timeit timeit 562949953420000 7 lt 56294995342100
  • 复杂的 Xpage 部分刷新需要很长时间

    我有一个复杂的 xpage 其中有很多嵌套的自定义控件 每次我执行部分刷新都需要超过 4 秒才能完成 如果我消除了复杂性 它就可以正常工作并且速度如您所愿 我对这个复杂的 Xpage 进行了测试 即使使用部分执行模式 这个简单的测试也需要
  • MPI_Type_Create_Hindexed_Block 生成派生数据类型的错误范围

    使用Fortran 我尝试为动态分配的结构构建派生数据类型 但它得到了新类型的错误范围 代码如下 PROGRAM MAIN IMPLICIT NONE INCLUDE mpif h INTEGER I INTEGER MYID NUMPRO
  • 方法与管道

    在 Angular 应用程序中的模板插值中使用管道和方法有区别吗 例如 h1 name toLowerCase h1 vs h1 name lowercase h1 就性能而言 是有真正的收获还是只是个人喜好 我知道调用模板中的方法通常会降
  • 如何找到 Ruby 应用程序中的性能瓶颈?

    我编写了一个 Ruby 应用程序 它可以解析来自不同格式 html xml 和 csv 文件的源的大量数据 如何找出代码的哪些区域花费时间最长 有没有关于如何提高 Ruby 应用程序性能的好资源 或者您是否有始终遵循的性能编码标准 例如 您
  • 如何在大空间尺度上加速A*算法?

    From http ccl northwestern edu netlogo models community Astardemo http ccl northwestern edu netlogo models community Ast
  • 读取大文件并制作字典

    我有一个大文件 我需要读取它并从中制作字典 我希望这一切能够尽可能快 然而我的Python代码太慢了 这是一个显示问题的最小示例 首先制作一些假数据 paste lt seq 20000000 lt seq 2 20000001 gt la
  • mclapply 用户时间大于已用时间

    我正在尝试使用mclapply的功能parallel封装在R 该函数通过计算对数似然距离将值分配给序列矩阵 这是一个 CPU 密集型操作 所结果的system time价值观令人困惑 gt system time mclapply work
  • 如何加快 Java VM (JVM) 的启动时间?

    我正在运行启动多个 JVM 进程的测试 与 JVM 内运行的实际测试时间相比 JVM 的总结启动时间非常重要 我怎样才能加快速度 我已经使用了 client 选项 这确实有帮助 但没有我想要的那么多 还有其他方法吗 比如预加载一堆 JVM
  • 有没有办法提高linux管道的性能?

    我正在尝试使用 64 位将超高速数据从一个应用程序传输到另一个应用程序CentOS http en wikipedia org wiki CentOS6 我使用以下方法进行了基准测试dd发现阻碍我的是管道而不是程序中的算法 我的目标是达到
  • 频繁插入已排序的集合

    我已经对集合 列表 进行了排序 并且我需要始终保持其排序 我目前在我的集合上使用 List BinarySearch 然后在正确的位置插入元素 我也尝试过在每次插入后对列表进行排序 但性能不可接受 有没有一种解决方案可以提供更好的性能 也许
  • 为什么在 data.frame 中预先指定类型会比较慢?

    我预先分配了一个大 data frame 以便稍后填写 我通常这样做NA是这样的 n lt 1e6 a lt data frame c1 1 n c2 NA c3 NA 我想知道如果我预先指定数据类型是否会让事情变得更快 所以我测试了 f1
  • CoreAnimation 性能分析 - CAReplicatorLayer 与 CAShapeLayer

    我正在制作一个依赖 CoreAnimation 的应用程序 它有一个 CAReplicatorLayer 和一个 CAShapeLayer 作为子层 当进行 12 次复制 然后对路径进行动画处理 在 touchMoved 上更改它 时 一旦
  • 如何清除chrome性能条目或绕过其数量限制?

    我使用 Google Chrome 来分析一些使用 Javascript 动态加载脚本和其他资源的网页的性能 我用performance getEntries 方法 但我注意到 Chrome 只记录前 150 个资源 我找不到任何方法来获取

随机推荐

  • java.lang.NumberFormatException:无效的 int:“”:错误

    我正在做一些计算 但无法将字符串解析为 int 甚至 float 我搜索了解决方案 并在某个地方读到它 必须有一个空字符串 但我使用检查了我的 editText log v Valuee e1 getText toString 其打印值证明
  • C++ 二项式系数太慢

    我尝试通过帕斯卡三角形进行递归来计算二项式系数 它对于小数量来说效果很好 但是 20 up 要么非常慢 要么根本不起作用 我尝试查找一些优化技术 例如 chaching 但它们似乎并没有真正很好地集成在 C 中 如果对您有帮助的话 这是代码
  • 如何将所有子文件夹输出到 HTA 中的下拉列表?

    我有如下代码 我想将 K work 中的所有子文件夹输出到此 HTA 的下拉列表中 因为 k work 中的所有子文件夹一直在变化 所以每次我单击下拉列表时 它都需要有最新的内容 根据我的代码可以做到这一点吗 另外 当我选择新客户时 我需要
  • 使用 Python 和 Pandas 抓取数据

    我正在尝试使用以下代码获取结果表 import pandas as pd url https www betfair co uk sport football df pd read html url header None df 0 如果您
  • 更改最大上传文件大小

    我有一个网站托管在我无法访问的电脑上 我有一个上传表单 允许人们上传最大 30MB 的 mp3 文件 我的服务器端脚本是用 PHP 完成的 每次我尝试上传文件时 都会收到一条错误消息 声称该文件超出了允许的最大大小 因此我需要增加大小 我在
  • 选择data.table的列并返回向量

    是否可以选择 data table 的一列并返回向量 在基数 R 中 参数drop TRUE就可以了 例如 library data table dat lt as data table iris dat Species returns d
  • argv[1] 仅包含 Visual C++ 2010 中第一个命令行参数的第一个字母 [重复]

    这个问题在这里已经有答案了 可能的重复 C 中 tmain 和 main 有什么区别 我有一个控制台应用程序 它采用一个命令行参数 int tmain int argc char argv printf Path s n argv 1 当我
  • 使用Python实现卡恩拓扑排序算法

    Kahn 在 62 中提出了一个算法拓扑排序任何 DAG 有向无环图 从维基百科复制的伪代码 L Empty list that will contain the sorted elements S Set of all nodes wit
  • 在未初始化的局部变量的情况下,Windows 线程堆栈保护页机制如何工作?

    在 x86 32 x86 64 架构的 Windows 操作系统上 线程堆栈虚拟内存由 保留部分 提交部分 保护页 和 保留页 组成 问题 想象一下 我有 1 页提交内存和 1MB 线程堆栈保留内存 我在堆栈上分配了一些等于 K 页的内存
  • Owl-carousel 2 失去焦点时停止自动播放工作

    我使用 Owl carousel 2 我使用 Owl carousel 2 的初始化和标记的标准代码 在页面的第一次加载时 轮播的工作是完美的 当我在浏览器中传递到另一个页面并返回或最小化浏览器并再次使用 Owl carousel 2 打开
  • 更改产品代码时可以将1.0.0.0升级到1.0.0.1吗?

    我被要求将版本 1 0 0 0 升级到 1 0 0 1 默认情况下 当我使用虚拟安装程序进行测试时 如果我们更改产品代码 1 0 0 0 和 1 0 0 1 都会并排安装 但如果我们执行版本 1 0 1 0 同时更改产品代码 它将进行升级
  • 客户端浏览器的提交机制和 ASP.NET 回发机制有什么区别?

    Button UseSubmitBehavior 属性用于获取或设置一个值 该值指示 Button 控件是使用客户端浏览器的提交机制还是 ASP NET 回发机制 那么 客户端浏览器的提交机制和 ASP NET 的回发机制有什么区别呢 如果
  • C# 工具提示中的富文本

    我可以扩展 ToolTip 并创建自己的 RichToolTip 但我不明白如何处理每行或每字的格式 我可以添加用户可以单击的控件吗 或图像等 我碰到富文本框但这是用 C MFC 编写的 我想要 C 的东西或可以与 C 一起使用的东西 有什
  • 如何使用js读取所有url参数?

    有什么办法 如何读取 url 参数吗 www example com detail id 12 www example com detail 12 返回 12 我不知道参数是什么 我想全部归还 您可以使用window location hr
  • 在 java web start 应用程序中禁用字节码验证

    我有一个 java web start 应用程序 我需要从 jnlp 文件中禁用字节码验证 这可以通过设置 JAVAWS VM ARGS 轻松完成 noverify 或通过设置 X验证 无但是文档这里说web start不支持添加这些参数在
  • 如何在特定条件下做出承诺解决?

    我是 JavaScript 新手 我真的对 Promise 的文档感到困惑 我在这里有以下情况 我有很多用户 对于每个用户 我执行一个异步函数 在该函数中我对该用户进行一些计算 并将结果与 用户一起添加到数组中 根据我从文档中了解到的 我需
  • 让 IIS6 提供 JSON 文件(包括 POST、GET)?

    默认情况下 IIS6不提供 json 无通配符MIME type 因此会抛出 404 not find 错误 然后我添加一个新的 MIME 类型 json text plain or application x javascript or
  • 查找列中的重复项并使用替代颜色突出显示行背景色

    我想突出显示行的单元格颜色 文本位于 A 列中 当 A 列中的值相同并且想要时 G 具有相同的颜色 对所有行迭代相同的操作并应用替代颜色 还想将 2 个单元格中的字体颜色更改为红色 F 列和 当 F 列中有文本 文件位于 EMEA 服务器上
  • XSL 转换 - 未声明的命名空间前缀

    我有一个 XSL 文件 我想用它转换 XML 文件 该 XML 文件是通过重命名具有 safe 扩展名的原始文件而获得的 在这里你可以看到它的第一行
  • 测量 MPI 通信成本的工具 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在使用 MPI 我想测