JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:性能分析器 MPI 教程     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  性能分析器 MPI 教程

关于 MPI 和性能分析器

针对本教程的设置

获取 MPI 软件

适用于 Oracle Solaris 10 和 Linux 的 MPI 软件

适用于 Oracle Solaris 11 的 MPI 软件

准备样例源代码

用于 ClusterTools 和 Open MPI 的样例代码

用于 Oracle Solaris 11 中 Oracle Message Passing Toolkit 的样例代码

编译并运行样例程序

收集有关 ring_c 示例的数据

打开实验

在 MPI 时间线内导航

查看消息详细信息

查看函数详细信息和应用程序源代码

在 MPI 标签中过滤数据

使用过滤堆栈

使用 `MPI Chart`(MPI 图表)标签

使用 `MPI Chart Controls`(MPI 图表控件)

创建图表显示消息从何处发送

创建图表显示哪些进程号接收消息的等待时间最长

了解速度慢的消息对 MPI 函数用时的影响

结论

A.  MPI 图表控件设置

B.  教程的样例代码

使用 "MPI Chart"(MPI 图表)标签

请在已过滤掉 MPI_InitMPI_Finalize 的情况下,学习了解 MPI 图表功能。初始图表显示哪些函数用时最长。

  1. 单击 "MPI Chart"(MPI 图表)标签,将看到类似下图的图表。

    image:包含多个函数的 MPI 图表

    在打开的 "MPI Chart"(MPI 图表)标签中,图表显示函数在所有进程中运行的持续时间的总和。图表右侧垂直的彩色尺显示颜色和值之间的对应关系。在此示例中,MPI_SendApplication 函数用时很少,而 MPI_Recv 的累计时间大约为 3 秒。

  2. 单击 MPI_Recv 函数栏。

    将在 "MPI Chart Controls"(MPI 图表控件)标签中显示该栏的确切值。

在该特定应用程序中,每个进程在令牌传递到下一个其他进程之前都在等待。因此,大量的时间用于 MPI_Recv,而 Application 仅占用很少一点时间,该状态表示 MPI 函数之间的时间。稍后您将看到,将消息传送到一个进程号所发生的延迟妨碍了所有其他进程号的执行。

使用 "MPI Chart Controls"(MPI 图表控件)

本节说明了如何使用 "MPI Chart Controls"(MPI 图表控件)标签以不同方式绘制数据。某些图表选项可能比其他选项更有用,具体取决于所分析的程序。有关所有 MPI 图表控件的说明,请参见附录 A

创建图表显示消息从何处发送

  1. 通过在 "MPI Chart Controls"(MPI 图表控件)标签中选择以下选项来创建图表查看消息:

    Data Type(数据类型):

    Messages(消息)

    Chart(图表):

    2–D Chart(2–D 图表)

    X Axis(X 轴):

    Send Process(发送进程)

    Y Axis(Y 轴):

    Receive Process(接收进程)

    Metric(度量):

    Duration(持续时间)

    Operator(运算符):

    Maximum(最大值)

  2. 单击 "Redraw"(重画),然后您将看到类似下图的图表:

    image:包含消息持续时间的 MPI 图表

    该图表显示进程 0 只向进程 1 发送消息。进程 1 只向进程 2 发送消息,依此类推。每个方框的颜色由所选的度量(持续时间)和运算符(最大值)决定。由于该图表的 "Data Type"(数据类型)为 "Messages"(消息),因此该图表示消息的持续时间总和,或时间维中消息线的长度。

    图表颜色表示进程号之间的最大消息持续时间。在此示例中,接收用时最长的消息是从 P14 发送到 P15 的消息。

创建图表显示哪些进程号接收消息的等待时间最长

  1. 在 "MPI Chart Controls"(MPI 图表控件)标签中选择以下选项:

    Data Type(数据类型):

    Messages(消息)

    Chart(图表):

    Y Histogram(Y 直方图)

    X Axis(X 轴):

    N/A

    Y Axis(Y 轴):

    Receive Process(接收进程)

    Metric(度量):

    Duration(持续时间)

    Operator(运算符):

    Maximum(最大值)

  2. 单击 "Redraw"(重画)绘制新的图表。

    image:显示等待时间最长的进程号的图表

    在此示例中,图表显示 P15 进程号接收消息的等待时间最长。

  3. 要用直方图显示这些持续时间长的消息的发生时间,请为控件选择以下选项:

    Data Type(数据类型):

    Messages(消息)

    Chart(图表):

    X Histogram(X 直方图)

    X Axis(X 轴):

    Receive Time(接收时间)

    Y Axis(Y 轴):

    N/A

    Metric(度量):

    Duration(持续时间)

    Operator(运算符):

    Maximum(最大值)

  4. 单击 "Redraw"(重画),您将看到类似下图的图表:

    image:显示消息持续时间与经过时间的 MPI 图表

    在此示例中,最慢的消息在 3.981 秒时接收。

了解速度慢的消息对 MPI 函数用时的影响

要了解持续时间长的消息的影响,可创建显示函数持续时间与经过时间的图表。

  1. 通过在 "MPI Chart Controls"(MPI 图表控件)标签中选择以下选项来创建图表查看消息:

    Data Type(数据类型):

    Functions(函数)

    Chart(图表):

    2–D Chart(2–D 图表)

    X Axis(X 轴):

    Exit Time(退出时间)

    Y Axis(Y 轴):

    Duration(持续时间)

    Metric(度量):

    Duration(持续时间)

    Operator(运算符):

    Maximum(最大值)

  2. 单击 "Redraw"(重画)。

    在此示例中,图表显示某些时间区域存在持续时间长的函数。请注意,在 t=3.99 时,函数持续时间超过 20 秒。该时间对应于上一图表中显示的较长的消息传递时间。

    image:显示函数持续时间的 MPI 图表
  3. 拖动出一个方框包围这些持续时间长的函数,对其进行放大,以便单独查看这些函数:

    image:显示函数持续时间的放大 MPI 图表
  4. 单击 "Filter"(过滤器)按钮,仅检查这些函数调用。

    image:显示持续时间长的函数调用的过滤 MPI 图表
  5. 单击 "MPI Timeline"(MPI 时间线)标签。

    您现在可以在 MPI 时间线上找出持续时间长的函数了。这些函数是因传送时间长的消息导致的。

    image:显示持续时间长的函数调用的 MPI 时间线
  6. 单击 "Remove"(删除)和 "Reapply"(重新应用)按钮,切换持续时间长的函数的显示背景。

有关 MPI 图表控件的更多信息,请参见附录 A