衡量MPI通讯成本的工具 [英] Tools to measure MPI communication costs

查看:74
本文介绍了衡量MPI通讯成本的工具的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用MPI,我想衡量通信成本,以便可以将它们与处理"成本进行比较,例如,我需要多少时间才能将列表分散到n个流程中,然后进行比较我需要多少时间对其进行排序.

I'm using MPI and I want to measure the communication costs, so that I can then compare them to the 'processing' costs, e.g., how much time do I need to scatter a list through n processes and then compare it to how much time I need to sort it.

有人知道有什么工具可以衡量这种通信成本吗? (例如散点图)

Does anyone know any tools to measure this communication costs? (the scatter for example)

是否有什么方法可以衡量MPI通信成本,例如可以使用PAPI来分析代码性能?

Is there anything to make measurements on MPI communication costs like there is, for example, PAPI to analyse code performance?

提前谢谢!

推荐答案

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

Yes, there's lots of such tools. MPI defines a tools interface that allows other libraries to interject themselves at your MPI function calls, and do counts, timing, etc.

一个非常小的MPI分析工具是 mpiP -它在您的代码中提供了一个非常简短的MPI活动摘要

A very small MPI profiling tool is mpiP - it gives a very short summary of MPI activity in your code.

IPM 库非常易于构建,并为您提供了许多MPI计数和时间,并且结果提供了一个不错的HTML文件.您提到了PAPI; IPM还将集成PAPI计数器(如果有).我们在我们的中心定期使用此功能,我认为这可以满足您的需求.如果您已经使用MPI动态库构建了程序,则甚至无需重新编译即可使用它(mpiP具有相同的属性).

The IPM library is fairly easy to build and gives you lots of MPI counts and times, and gives a nice HTML file as a result. You mention PAPI; IPM will also integrate PAPI counters if available. We use this regularly at our centre, and I think this would do what you like. If you've built your program with dynamic libraries for MPI, you don't even need to recompile to use this (mpiP has the same property).

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

Jumpshot, which comes with MPICH2 but can be built with any MPI, actually shows on a timeline how long each MPI operation took.

OpenSpeedshop 提供了非常详细的代码性能评估,特别是昂贵"的行;它还具有MPI跟踪模式,该模式将通过代码行标识MPI时间.安装起来可能很棘手.

OpenSpeedshop gives very detailed performance measurements of your code, highlighting especially "expensive" lines; it also has an MPI-tracing mode which will identify MPI times by line of code. It can be tricky to install.

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

On the commercial part of the spectrum there are Vampir from TU Dresden and Intel Trace Analyzer and Collector (ITAC). Vampir collects source-level, MPI and OpenMP traces using the open source VampirTrace library that also integrates with PAPI to provide detailed event and counter tracing. VampirTrace's traces are in Open Trace Format that could be read by various other tools besides Vampir.

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

ITAC is part of Intel Cluster Studio XE. It is mostly designed to work with Intel MPI and sharing the same ancestral code with Vampir, provides more or less the same functionality. One of its nice features is the included automatic run-time MPI correctness checker.

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

Allinea MAP is an MPI profiler from Allinea that provides performance analysis with an integrated source browser that displays the communication/computation cost alongside individual lines of the source code. It also shows high-level graphs of performance information, including memory, CPU instructions and communication.

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

But there are other higher level tools which not only give reports, but actually offer advice. TACC's perfexpert is a command-line based tool which takes a number of measurements and offers some performance tuning advice. Scalasca out of Jülich, recompiles your code with a lot of source-level instrumentation and can point out load imbalances, particularly expensive MPI collectives, etc. It can also integrate with Vampir for detailed trace analysis.

这篇关于衡量MPI通讯成本的工具的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆