---
title: 查看分析结果
description: "已创建HPC应用分析任务，并且成功完成分析。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_25_1_rc1/usermanual/devkit-hypertuner-062.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_25_1_rc1/usermanual/devkit-hypertuner-062.html
indexId: 03fc5e9908f9f7a613ff0b7aae2cdcc9e89bc9d00c401ecdea4f8cf40972c17a85
---
# 查看分析结果

#### 前提条件

已创建HPC应用分析任务，并且成功完成分析。


#### 查看分析结果

1. 在左侧“系统性能分析”区域，单击指定分析任务名称。
  展开节点列表。

2. 单击节点名称查看分析结果。

  - 单击节点名称默认打开“总览”页签，如    图 总览
所示，界面参数描述如    表 总览参数说明
所示。
    可单击优化建议下“代码样例”或右下方按钮的代码样例选项参见调优示例。

    图1 总览

**表1 总览参数说明**

| 参数 | 说明 |
| --- | --- |
| 执行时间 | 显示应用程序运行时间。 |
| 串行时间 | 显示应用程序串行运行的时间。 |
| 并行时间 | 显示应用程序并行运行的时间。 |
| 不平衡时间 | 显示应用程序不平衡的运行时间。 |
| CPU使用率 | 显示CPU使用率（相对于OpenMP运行的比率）。 |
| OpenMP Team信息 | 显示OpenMP Team信息。 |
| OpenMP Team使用率 | 显示OpenMP Team的使用率。 |
| 函数 | 显示调用函数。 |
| 模块 | 显示调用模块。 |
| CPU Time(s) | 显示CPU使用时间。 |
| Parallel region | 显示并行区域。 |
| Potential Gain(s) | 显示实际时长和理论时长的差异。 |
| 不平衡比例（%） | 显示应用程序不平衡的运行比率。 |
| 平均时间（ms） | 显示平均的运行时间。 |
| CPI | 显示CPU cycles/Retired instruction的比值，表示每一条指令消耗的时钟周期。 |
| Effective使用率 | 显示线程有效工作所占CPU利用率。 |
| Spinning | 显示线程等待spinlock所占CPU利用率。 |
| Overhead | 显示其余overhead所占CPU利用率。 |
| Instructions Retired | 显示执行的指令总数。 |
| MPI Wait Rate | 显示消耗在MPI阻塞函数上的时间百分比。 |
| Communication | 显示集群通信在总通信的占比。 |
| Point to point | 显示消耗在点对点通信函数上的时间百分比。 |
| Collective | 显示消耗在MPI收集函数上的时间百分比。 |
| Synchronization | 显示消耗在同步函数上的时间百分比。 |


**表2 Hotspots区域参数说明**

| 参数 | 说明 |
| --- | --- |
| 分组方式 | 默认为“function”选项，还可选“module”、“parallel\-region”和“barrier\-to\-barrier\-segment”。 |
| function | 显示调用函数。 |
| module | 显示调用模块。 |
| parallel\-region | 显示并行区域。 |
| barrier\-to\-barrier\-segment | 显示特殊的独立运行区段。 |
| in Loop | 显示loop数据，仅分组方式勾选“function”时显示。 |
| CPU(%) | 显示CPU利用率。 |
| CPU(s) | 显示CPU时间。 |
| Spin(s) | 显示等待spinlock的CPU时间。 |
| Overhead(s) | 显示其余overhead所占CPU时间。 |
| CPI | 显示CPU cycles/Retired instruction的比值，表示每一条指令消耗的时钟周期。 |
| Ret(%) | 显示INST\_RETIRED / (4 \* CPU\_CYCLES)，该指标用来表示CPU微架构执行效率。 |
| Back(%) | 显示由于core/memory等资源缺乏导致CPU流水线执行停顿的占比。 |
| Mem(%) | 显示由于内存访问延迟导致的CPU流水线执行停顿的占比。 |
| L1(%) | 显示由于L1 cache命中导致的CPU流水线执行停顿的占比。 |
| L2(%) | 显示由于L2 cache命中导致的CPU流水线执行停顿的占比。 |
| L3/M(%) | 显示由于L2 cache未命中导致的CPU流水线执行停顿的占比。 |
| Core(%) | 显示由于正在执行指令导致的CPU流水线执行停顿的占比。 |
| SIMD(%) | 显示SIMD指令的占比。 |
| Front(%) | 显示由于前端组件原因导致的CPU流水线执行停顿的占比。 |
| Spec(%) | 显示由于分支预测执行导致的CPU流水线执行停顿的占比。 |
| Instr | 显示指令数。 |


**表3 内存带宽区域参数说明**

| 参数 | 说明 |
| --- | --- |
| 内存带宽 | 内存带宽 |
| 平均DRAM带宽 | 显示平均DRAM带宽。 |
| 读带宽 | 显示平均读带宽。 |
| 写带宽 | 显示平均写带宽。 |
| Socket内的带宽 | 显示Socket内的带宽。 |
| 跨Socket带宽 | 显示跨Socket的带宽。 |
| L3 By\-Pass比率 | 显示L3 By\-Pass比率。 |
| L3 miss比率 | 显示L3 miss的比率。 |
| L3使用比率 | 显示L3集群使用比率。 |
| 指令分布（鼠标悬停于参数旁边的问号上可查看详细信息） | 指令分布（鼠标悬停于参数旁边的问号上可查看详细信息） |


**表4 HPC Top-Down及PMU事件区域参数说明**

| 参数 | 说明 |
| --- | --- |
| HPC Top\-Down | HPC Top\-Down |
| 事件名称 | 显示Top\-Down事件名称。 |
| 事件比例 | 显示Top\-Down事件比例。 |
| 原始PMU事件计数 | 原始PMU事件计数 |
| 事件 | 显示PMU事件名称。 |
| 计数 | 显示PMU事件数量。 |


**表5 MPI运行时指标**

| 参数 | 说明 |
| --- | --- |
| 分组方式 | 显示筛选类型，默认选中“function”，还可选择“send\-type”、“recv\-type”、“mpi\-comm”、“caller”、“send\-size”和“recv\-size”。 |
| function | 显示调用函数。 |
| MPI Rank | 显示逻辑工作单元。 |
| Wait Rate(%) | 显示消耗在MPI阻塞函数上的时间百分比。 |
| P2P Comm(%) | 显示消耗在MPI点对点通信函数上的时间百分比。 |
| Coll Comm(%) | 显示消耗在MPI收集函数上的时间百分比。 |
| Sync(%) | 显示消耗在MPI同步函数上的时间百分比。 |
| Single I/O(%) | 显示消耗在MPI\_File\_read、MPI\_File\_write函数上的时间百分比。 |
| Coll I/O(%) | 显示消耗在MPI\_File\_read\_all、MPI\_File\_write\_all函数上的时间百分比。 |
| Avg Time | 显示平均时延。 |
| Call Count | 显示调用次数。 |
| Data Size(bytes) | 显示传输数据大小。 |
| Send data type | 显示发送数据类型。 |
| Recv data type | 显示接收数据类型 |
| Sent | 显示发送数据的工作单元。 |
| Received | 显示接受数据的工作单元。 |


**表6 OpenMP运行时指标**

| 参数 | 说明 |
| --- | --- |
| Parallel region | 显示并行区域。 |
| Barrier\-to\-barrier segment | 显示特殊的独立运行区段。 |
| Potential Gain(s) | 显示理想和实际的时间差。 |
| Elapsed Time(s) | 显示运行在并行区的时间。 |
| Imbalance(s) | 显示等待最后一个线程到达并行区出口的时间。 |
| Imb(%) | 显示不平衡时间占执行时间的比率。 |
| CPU Util(%) | 显示运行在并行区的CPU利用率。 |
| Avg(ms) | 显示平均时延。 |
| Count | 显示调用次数。 |
| Lock Cont(s) | 显示工作线程在消耗CPU资源的锁上的CPU时间。 |
| Creation(s) | 显示并行工作安排的开销。 |
| Scheduling(s) | 显示调度时间显示OpenMP运行时调度程序在工作线程的并行工作分配上的开销。 |
| Tasking(s) | 显示任务分配时间。 |
| Reduction(s) | 显示归约操作时间。 |
| Atomics(s) | 显示原子操作时间。 |


  - “OpenMP timeline”页签如    图2
所示，参数说明如    表7
所示。
    可通过“←”和“→”对线程上下切换；标记关键线程，可拖动上方时间轴查看对应时间区间数据展示，也可通过下拉框筛选关键线程。 Hot Callstack最多支持10个调用栈显示。

    图2 OpenMP timeline

**表7 OpenMP timeline页签参数说明**

| 参数 | 说明 |
| --- | --- |
| TID | 线程ID。 |
| region类型 | 显示线程的region类型。 |
| 开始时间 | 显示线程某一阶段的开始时间。 |
| 持续时间 | 显示线程某一阶段的持续时间。 |
| CPI | CPU cycles/Retired instruction的比值，表示每一条指令消耗的时钟周期。 |
| Instructions Retired | 总指令数。 |
| 调用栈 | 调用栈名称。 |
| 调用次数 | 该调用栈的调用次数。 |
| 调用比例（%） | 在所有调用栈中的占比。 |
| 事件名称 | 显示Top\-Down事件名称。 |
| 事件比例（%） | 显示Top\-Down事件比例。 |


  - “MPI timeline”页签如    图3
所示，参数说明如    表8
所示。
    RDMA和共享存储数据需在任务创建时选择，可单击按钮筛选查看；详情可单击折线图某一时刻查看。

    图3 MPI timeline

    表8 MPI timeline参数说明 参数 说明 rank基础信息 rank ID 显示选中rank的ID。 开始时间 显示线程某一阶段的开始时间。 持续时间 显示线程某一阶段的持续时间。 CPI CPU cycles/Retired instruction的比值，表示每一条指令消耗的时钟周期。 Instructions Retired 总指令数。 集群通信类型 显示集群通信的类型。 通信域根 显示通信域根。 通信域名称 显示通信域的名称。 通信数据量 显示通信时发送和接收的数据量。 通信域成员数量 显示当前通信域成员数量。 通信域成员 显示具体通信域成员。 rank调用信息 调用栈 调用栈名称。 调用次数 该调用栈的调用次数。 调用比例（%） 在所有调用栈中的占比。 事件名称 显示Top-Down事件名称。 事件比例（%） 显示Top-Down事件比例。 RDMA信息 节点IP 显示RDMA所在的IP地址。 采集时间 显示当前RDMA数据的采集时间点。 接收 显示当前时间点接收的数据量。 发送 显示当前时间点发送的数据量。 共享存储信息 节点IP 显示共享存储的IP地址。 采集时间 显示当前共享存储数据的采集时间点。 接收 显示当前时间点接收的数据量。 发送 显示当前时间点发送的数据量。

  - HPC应用分析任务在分析应用时选中精细化分析，可查看“通信热力图”页签如    图4
所示。
    统计对象默认选项Rank To Rank，统计指标默认选项为Data_Size，通信类型默认选项为Point to Point，选择通信域默认选项为第一个。 可通过下拉框选择统计对象（可选Node To Node）、统计指标（可选Latency）、通信类型（可选集群通信）和通信域；若统计指标选择“Latency”，则通信类型只能为“Point to Point”。 （ranki,rankj）对应的数据量为ranki发往rankj的数据加ranki接收自rankj的数据。 可在左侧图中使用鼠标框选需要查看的范围；右侧图为左侧框选的详细内容，单击或按钮可放大缩小，也可通过鼠标滑轮控制。 选择通信域弹窗中可单击搜索“通信域名称”和“通信域成员”，单击对“对通信域成员”排序，单击“查看详情”可查看通信域信息弹窗。

    图4 通信热力图

    单击“选择通信域”下拉框可切换和筛选需要查看的通信域信息。

    图5 选择通信域

    单击“统计对象”换成Node To Node，可查看如图6所示rank信息，主要指标为本地占比、跨DIE占比和跨片占比。

    图6 通信热力图（Node To Node）

  - 单击“任务信息”页签查看当前节点任务的详细配置信息和采集信息。
    如果任务执行失败，“任务信息”界面上会显示任务失败的原因。 如果任务执行成功，但有部分不影响整体的数据采集失败，可查看“异常信息”。 “采集结束原因”可表明当前任务数据采集结束原因，如“到达任务采集时间”和“到达文件采集大小”等。
