Oracle Solaris Studio 12.2:C++ 用户指南

A.2.158.1 值

下表列出了 i 值:

表 A–41 -xopenmp

值 

含义  

parallel

启用 OpenMP pragma 的识别。在 -xopenmp=parallel 时,最低优化级别是 -x03。编译器会在必要时将优化级别提高到 -x03 并发出警告。

此标志还定义处理器标记 _OPENMP

noopt

启用 OpenMP pragma 的识别。如果优化级别低于 -O3,编译器将不会提高优化级别。

如果显式将优化级别设置为低于 -O3(如 CC -O2 -xopenmp=noopt),编译器会发出错误。如果没有使用 -xopenmp=noopt 指定优化级别,则会识别 OpenMP Pragma,并相应地对程序进行并行处理,但不进行优化。

此标志还定义处理器标记 _OPENMP

none

此标记是缺省的,它禁用对 OpenMP pragma 的识别,而且不更改程序的优化级别且不预定义任何预处理程序标记。 

缺省值

如果未指定 -xopenmp,则编译器将该选项设置为 -xopenmp=none

如果指定了没有参数的 -xopenmp,则编译器将该选项设置为 -xopenmp=parallel

交互

如果使用 dbx 调试 OpenMP 程序,那么编译时选用 -g-xopenmp=noopt 可以在并行区设置断点并显示变量内容。

警告

在以后的发行版中,-xopenmp 的缺省值可能会更改。可以通过显式指定适当的优化来避免警告消息。

如果在不同的步骤中进行编译和链接,请在编译步骤和链接步骤中都指定 -xopenmp。如果要生成共享对象,这很重要。用于编译可执行文件的编译器的版本不得比使用 -xopenmp 生成 .so 的编译器低。这在编译包含 OpenMP 指令的库时尤其重要。有关在编译时和链接时都必须指定的选项的完整列表,请参见3.3.3 编译时选项和链接时选项

为了取得最佳的性能,请确保在系统上安装了最新的 OpenMP 运行时库 libmtsk.so

另请参见

有关用于生成多重处理应用程序的 OpenMP Fortran 95、C 和 C++ 应用程序接口 (application program interface, API) 的完整摘要,请参见《Solaris Studio OpenMP API 用户指南》