在编译器对那些用指令显式标记为并行化的循环进行分析时,它发出有关所检测到的某些数据依赖性的警告消息;但是仍将对循环进行并行化。
示例:冗余并行化警告:
demo% f95 -explicitpar -vpara any.f any.f: MAIN any: "any.f", line 11: Warning: the loop may have parallelization inhibiting reference |
请与 -xopenmp 和 OpenMP API 指令一起使用,或者与 -explicitpar 和 C$MIC DOALL 传统并行化指令一起使用。
由编译器发出的警告检测到下列情形:
OpenMP 数据共享属性子句使用不当。例如,将变量声明为共享,而在 OpenMP 并行区域中访问该变量会导致数据争用;或者将变量声明为私有,但在并行区域后面使用其在并行区域中的值。
C$MIC DOALL 对在不同循环迭代之间具有数据依赖性的循环进行并行化。
如果在处理所有并行化指令时没有出现任何问题,则不显示警告。
Sun Studio 编译器支持 OpenMP API 并行化模型。因此,C$MIC 并行化指令已过时。有关迁移到 OpenMP API 的信息,请参见《OpenMP API 用户指南》。