发出与潜在并行编程有关的问题的警告信息,在使用 OpenMP 或 Sun 并行指令和 pragma 时,这些问题可能会导致错误结果。
与 -xopenmp 和 OpenMP API 指令结合使用,或与 -xexplicitpar 和 MP 并行化指令结合使用。
当编译器检测到以下情况时,将发出警告:
当不同循环迭代之间存在数据依赖性时,检测到使用 MP 指令并行化的循环
对 OpenMP 数据共享属性子句的使用有问题,如将变量声明为 "shared"(该变量在 OpenMP 并行区域中的访问可能引起数据争用),或将变量声明为 "private"(该变量在并行区域中的值用在并行区域之后)。
如果所有并行化指令在处理期间均未出现问题,则不显示警告。
示例:
cc -xopenmp -vpara any.c |
Sun Studio 编译器支持 OpenMP 2.5 API 并行化。因此,已废弃 MP pragma 指令,不再支持此类指令。 有关迁移到 OpenMP API 的信息,请参见《OpenMP API 用户指南》。