Oracle Solaris Studio 12.2:性能分析器

人工函数

构造人工函数,并将其放置在用户模式和专家模式调用堆栈上,以反映线程在 OpenMP 运行时库中处于某个状态的事件。

定义了以下人工函数:

<OMP-overhead>

在 OpenMP 库中执行 

<OMP-idle>

从属线程,等待工作 

<OMP-reduction>

执行归约操作的线程 

<OMP-implicit_barrier>

在隐式屏障处等待的线程 

<OMP-explicit_barrier>

在显式屏障处等待的线程 

<OMP-lock_wait>

等待锁定的线程 

<OMP-critical_section_wait>

等待进入临界段的线程 

<OMP-ordered_section_wait>

等待轮流进入排序段的线程 

<OMP-atomic_section_wait>

等待 OpenMP 原子构造的线程。 

当线程处于对应于其中一个人工函数的 OpenMP 运行时状态时,会将该人工函数作为堆栈上的叶函数添加。当线程的实际叶函数处于 OpenMP 运行时中的任意位置时,<OMP-overhead> 将作为叶函数替换它。否则,从用户模式堆栈中忽略 OpenMP 运行时中的所有 PC。

对于 OpenMP 3.0 程序,不使用 <OMP-overhead> 人工函数。由“OpenMP 开销”度量替换人工函数。