下表列出了 i 值:
表 A–42 -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 和 -xexplicitpar 或 -xparallel 一起指定。
在以后的发行版中,-xopenmp 的缺省值可能会更改。可以通过显式指定适当的优化来避免警告消息。
如果在不同的步骤中进行编译和链接,请在编译步骤和链接步骤中都指定 -xopenmp。如果要生成共享对象,这很重要。用于编译可执行文件的编译器的版本不得比使用 -xopenmp 生成 .so 的编译器低。这在编译包含 OpenMP 指令的库时尤其重要。
为了取得最佳的性能,请确保在系统上安装了最新的 OpenMP 运行时库 libmtsk.so。
有关生成多进程应用程序的 OpenMP Fortran 95、C 和 C++ 应用程序接口 (application program interface, API) 的完整摘要,请参见《Sun Studio 12: OpenMP API User’s Guide》。