Oracle® Developer Studio 12.5:OpenMP API 用户指南

退出打印视图

更新时间: 2016 年 7 月
 
 

7.3 使用作用域检查时的限制

  • 作用域检查仅适用于优化级别 -xO3 或更高级别。如果只使用 -xopenmp=noopt 来编译程序,作用域检查将不起作用。

  • 只识别 OpenMP 指令,并且只能在分析中使用。无法识别对 OpenMP 运行时例程的调用。例如,如果程序使用 omp_set_lock()omp_unset_lock() 来实现临界段,编译器将无法检测是否存在临界段。请在可能的情况下使用 critical 指令。

  • 在数据争用分析中,只能识别和使用通过 OpenMP 同步指令(如 barriermaster)指定的同步。不识别用户实现的同步,如忙等待。


注 -  使用 –xvpara 编译器选项进行的作用域检查使用静态(编译时)分析确定程序中的潜在问题。另一方面,线程分析器工具使用动态(运行时)分析检查程序中的数据争用和死锁。结合使用这两种方法可以尽可能多地检测出程序中的错误。