跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris Studio 12.3:性能分析器 MPI 教程 Oracle Solaris Studio 12.3 Information Library (简体中文) |
适用于 Oracle Solaris 10 和 Linux 的 MPI 软件
适用于 Oracle Solaris 11 的 MPI 软件
用于 ClusterTools 和 Open MPI 的样例代码
请在已过滤掉 MPI_Init 和 MPI_Finalize 的情况下,学习了解 MPI 图表功能。初始图表显示哪些函数用时最长。
单击 "MPI Chart"(MPI 图表)标签,将看到类似下图的图表。
在打开的 "MPI Chart"(MPI 图表)标签中,图表显示函数在所有进程中运行的持续时间的总和。图表右侧垂直的彩色尺显示颜色和值之间的对应关系。在此示例中,MPI_Send 和 Application 函数用时很少,而 MPI_Recv 的累计时间大约为 3 秒。
单击 MPI_Recv 函数栏。
将在 "MPI Chart Controls"(MPI 图表控件)标签中显示该栏的确切值。
在该特定应用程序中,每个进程在令牌传递到下一个其他进程之前都在等待。因此,大量的时间用于 MPI_Recv,而 Application 仅占用很少一点时间,该状态表示 MPI 函数之间的时间。稍后您将看到,将消息传送到一个进程号所发生的延迟妨碍了所有其他进程号的执行。
本节说明了如何使用 "MPI Chart Controls"(MPI 图表控件)标签以不同方式绘制数据。某些图表选项可能比其他选项更有用,具体取决于所分析的程序。有关所有 MPI 图表控件的说明,请参见附录 A。
通过在 "MPI Chart Controls"(MPI 图表控件)标签中选择以下选项来创建图表查看消息:
Messages(消息)
2–D Chart(2–D 图表)
Send Process(发送进程)
Receive Process(接收进程)
Duration(持续时间)
Maximum(最大值)
单击 "Redraw"(重画),然后您将看到类似下图的图表:
该图表显示进程 0 只向进程 1 发送消息。进程 1 只向进程 2 发送消息,依此类推。每个方框的颜色由所选的度量(持续时间)和运算符(最大值)决定。由于该图表的 "Data Type"(数据类型)为 "Messages"(消息),因此该图表示消息的持续时间总和,或时间维中消息线的长度。
图表颜色表示进程号之间的最大消息持续时间。在此示例中,接收用时最长的消息是从 P14 发送到 P15 的消息。
在 "MPI Chart Controls"(MPI 图表控件)标签中选择以下选项:
Messages(消息)
Y Histogram(Y 直方图)
N/A
Receive Process(接收进程)
Duration(持续时间)
Maximum(最大值)
单击 "Redraw"(重画)绘制新的图表。
在此示例中,图表显示 P15 进程号接收消息的等待时间最长。
要用直方图显示这些持续时间长的消息的发生时间,请为控件选择以下选项:
Messages(消息)
X Histogram(X 直方图)
Receive Time(接收时间)
N/A
Duration(持续时间)
Maximum(最大值)
单击 "Redraw"(重画),您将看到类似下图的图表:
在此示例中,最慢的消息在 3.981 秒时接收。
要了解持续时间长的消息的影响,可创建显示函数持续时间与经过时间的图表。
通过在 "MPI Chart Controls"(MPI 图表控件)标签中选择以下选项来创建图表查看消息:
Functions(函数)
2–D Chart(2–D 图表)
Exit Time(退出时间)
Duration(持续时间)
Duration(持续时间)
Maximum(最大值)
单击 "Redraw"(重画)。
在此示例中,图表显示某些时间区域存在持续时间长的函数。请注意,在 t=3.99 时,函数持续时间超过 20 秒。该时间对应于上一图表中显示的较长的消息传递时间。
拖动出一个方框包围这些持续时间长的函数,对其进行放大,以便单独查看这些函数:
单击 "Filter"(过滤器)按钮,仅检查这些函数调用。
单击 "MPI Timeline"(MPI 时间线)标签。
您现在可以在 MPI 时间线上找出持续时间长的函数了。这些函数是因传送时间长的消息导致的。
单击 "Remove"(删除)和 "Reapply"(重新应用)按钮,切换持续时间长的函数的显示背景。
有关 MPI 图表控件的更多信息,请参见附录 A。