Oracle® Solaris Studio 12.4:OpenMP API 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

2.2.1 OpenMP 环境变量行为和缺省值

下表介绍了 Oracle Solaris Studio 支持的 OpenMP 环境变量的行为及其缺省值。请注意,为环境变量指定的值不区分大小写,可以采用大写或小写形式。

环境变量
行为、缺省值和示例
OMP_SCHEDULE
如果为 OMP_SCHEDULE 指定的调度类型不是有效类型(staticdynamicguidedautosunw_mp_sched_reserved)之一,则将忽略该环境变量,并将使用缺省调度(static,不指定块大小)。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
如果为 OMP_SCHEDULE 环境变量指定的调度类型为 staticdynamicguided,但是指定的块大小为负整数,则使用的块大小将如下:对于 static,不指定块大小;对于 dynamicguided,块大小为 1。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
如果未设置,则使用缺省值 static(不指定块大小)。
示例:% setenv OMP_SCHEDULE "GUIDED,4"
OMP_NUM_THTEADS
如果为 OMP_NUM_THREADS 指定的值不是正整数,则会忽略环境变量。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
如果指定的值大于该实现可支持的线程数,则将执行以下操作:
  • 如果启用了线程数的动态调整,则线程数将会减少,并且如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。

  • 如果禁用了线程数的动态调整,则将发出错误消息,并且程序将会停止执行。

如果未设置,则缺省值等于计算机上的核心数,上限为 32。
示例:% setenv OMP_NUM_THREADS 16
OMP_DYNAMIC
如果为 OMP_DYNAMIC 指定的值既不是 TRUE 也不是 FALSE,则将忽略该值,并将使用缺省值 TRUE。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
如果未设置,则使用缺省值 TRUE
示例:% setenv OMP_DYNAMIC FALSE
OMP_PROC_BIND
如果为 OMP_PROC_BIND 指定的值不是 TRUEFALSE 或者逗号分隔的 masterclosespread 列表,则以非零状态退出进程。
如果无法将初始线程绑定到 OpenMP 位置列表中的第一个位置,则以非零状态退出进程。
如果未设置,则使用缺省值 FALSE
示例:% setenv OMP_PROC_BIND spread
OMP_PLACES
如果为 OMP_PLACES 指定的值无效或无法实现,则以非零状态退出进程。
如果未设置,则使用缺省值 cores
示例:% setenv OMP_PLACES sockets
OMP_NESTED
如果为 OMP_NESTED 指定的值既不是 TRUE 也不是 FALSE,则将忽略该值,并将使用缺省值 FALSE。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
如果未设置,则使用缺省值 FALSE
示例:% setenv OMP_NESTED TRUE
OMP_STACKSIZE
如果为 OMP_STACKSIZE 指定的值不符合指定格式,则将忽略该值,并将使用缺省值(对于 32 位应用程序为 4 MB,对于 64 位应用程序为 8 MB)。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
对于 32 位应用程序,辅助线程的缺省堆栈大小为 4 MB;对于 64 位应用程序,缺省值为 8 MB。
示例:% setenv OMP_STACKSIZE 10M
OMP_WAIT_POLICY
线程的 ACTIVE 行为是旋转。线程的 PASSIVE 行为是经过一段可能的旋转之后休眠
如果未设置,则使用缺省值 PASSIVE
示例:% setenv OMP_WAIT_POLICY ACTIVE
OMP_MAX_ACTIVE_LEVELS
如果为 OMP_MAX_ACTIVE_LEVELS 指定的值不是非负整数,则将忽略该值,并将使用缺省值 4。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
如果未设置,则使用缺省值 4。
示例:% setenv OMP_MAX_ACTIVE_LEVELS 8
OMP_THREAD_LIMIT
如果为 OMP_THREAD_LIMIT 指定的值不是正整数,则将忽略该值,并将使用缺省值 1024。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
如果未设置,则使用缺省值 1024。
示例:% setenv OMP_THREAD_LIMIT 128
OMP_DISPLAY_ENV
如果为 OMP_DISPLAY_ENV 指定的值不是 TRUEFALSEVERBOSE,则将忽略该值,并将使用缺省值 FALSE。如果将 SUNW_MP_WARN 设置为 TRUE,或者通过调用 sunw_mp_register_warn() 注册回调函数,则将发出警告消息。
如果未设置,则使用缺省值 FALSE
示例:% setenv OMP_DISPLAY_ENV VERBOSE