要使用 OpenMP 指令实现显式并行化,请使用 cc、CC 或 f95 编译器选项 -xopenmp 编译程序。f95 编译器将 -xopenmp 和 -openmp 作为同义词接受。
|
如果未在命令行中指定 -xopenmp,则缺省情况下编译器会采用 –xopenmp=none(禁用对 OpenMP 指令的识别)。
如果指定 -xopenmp 但不带关键字子选项,则编译器会采用 –xopenmp=parallel。
指定 -xopenmp=parallel 或 -xopenmp=noopt 会将 _OPENMP 宏定义为具有十进制值 201307L(在 C/C++ 中),或具有值 201307(在 Fortran 中),其中 2013 是 OpenMP 4.0 规范的年份,07 是月份。
使用 dbx 调试 OpenMP 程序时,请使用 -xopenmp=noopt -g 进行编译,以启用全部调试功能。
为避免出现编译警告消息,请显式指定适当的优化级别,而不是依赖于可能会发生变化的缺省值。
对于 Fortran,使用 -xopenmp、-xopenmp=parallel 或 -xopenmp=noopt 编译表示 -stackvar。请参见堆栈和堆栈大小。
在单独的步骤中编译和链接 OpenMP 程序时,请在各个编译及链接步骤中包含 -xopenmp。
将 -xvpara 选项与 -xopenmp 选项一起使用可显示有关潜在 OpenMP 编程问题的编译器警告(请参见作用域检查)。