构造人工函数,并将其放置在用户模式调用栈上,以反映线程在 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>-等待轮流进入排序段的线程
当线程处于对应于其中一个函数的 OpenMP 运行时状态时,会将对应函数作为堆栈上的叶函数添加。当线程的叶函数处于 OpenMP 运行时中的任意位置时,<OMP-overhead> 将作为叶函数替换它。否则,从用户模式堆栈中忽略 OpenMP 运行时中的所有 PC。