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_WARNTRUE に設定されているか、sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合には、警告メッセージが表示されます。
OMP_SCHEDULE 環境変数に指定されたスケジュール型が staticdynamic、または guided であるが、指定されたチャンクサイズが負の整数の場合、次のようにチャンクサイズが設定されます。static の場合は、チャンクサイズは設定されません。dynamic または guided の場合は、チャンクサイズは 1 になります。SUNW_MP_WARNTRUE に設定されているか、sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合には、警告メッセージが表示されます。
設定しない場合は、デフォルト値の static (チャンクサイズは設定されない) が使用されます。
例: % setenv OMP_SCHEDULE "GUIDED,4"
OMP_NUM_THTEADS
OMP_NUM_THREADS に指定された値が正の整数ではない場合、この環境変数は無視されます。SUNW_MP_WARNTRUE に設定されているか、sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合には、警告メッセージが表示されます。
指定された値が、実装でサポートしているスレッド数よりも大きい場合は、次のアクションが実行されます。
  • スレッド数の動的調整が有効になっている場合は、スレッド数が減少します。また、SUNW_MP_WARNTRUE に設定されているか、sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合には、警告メッセージが表示されます。

  • スレッド数の動的調整が無効になっている場合は、エラーメッセージが表示され、プログラムの実行が停止します。

設定していない場合、デフォルトでは、マシンのコアの数になりますが、上限は 32 です。
例: % setenv OMP_NUM_THREADS 16
OMP_DYNAMIC
OMP_DYNAMIC に指定された値が TRUE でも FALSE でもない場合は、その値は無視され、デフォルト値である TRUE が使用されます。SUNW_MP_WARNTRUE に設定されている場合、または sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合は、警告メッセージが表示されます。
設定しない場合、デフォルト値は TRUE です。
例: % setenv OMP_DYNAMIC FALSE
OMP_PROC_BIND
OMP_PROC_BIND に指定された値が、TRUEFALSE、あるいは masterclose、または spread のコンマ区切りのリストではない場合、プロセスはゼロ以外のステータスで終了します。
初期スレッドを 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_WARNTRUE に設定されている場合、または sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合は、警告メッセージが表示されます。
設定しない場合、デフォルトは FALSE です。
例: % setenv OMP_NESTED TRUE
OMP_STACKSIZE
OMP_STACKSIZE に指定された値が指定書式に従っていない場合、その値は無視され、デフォルト値 (32 ビットアプリケーションでは 4M バイト、64 ビットアプリケーションでは 8M バイト) が使用されます。SUNW_MP_WARNTRUE に設定されている場合、または sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合は、警告メッセージが表示されます。
ヘルパースレッドのデフォルトのスタックサイズは、32 ビットアプリケーションでは 4M バイト、64 ビットアプリケーションでは 8M バイトです。
例: % 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_WARNTRUE に設定されている場合、または sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合は、警告メッセージが表示されます。
設定しない場合、デフォルト値は 4 です。
例: % setenv OMP_MAX_ACTIVE_LEVELS 8
OMP_THREAD_LIMIT
OMP_THREAD_LIMIT に指定された値が正の整数ではない場合、その値は無視され、デフォルト値 1024 が使用されます。SUNW_MP_WARNTRUE に設定されている場合、または sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合は、警告メッセージが表示されます。
設定しない場合、デフォルト値は 1024 です。
例: % setenv OMP_THREAD_LIMIT 128
OMP_DISPLAY_ENV
OMP_DISPLAY_ENV に指定された値が TRUEFALSE、または VERBOSEではない場合、その値は無視され、デフォルト値である FALSE が使用されます。SUNW_MP_WARNTRUE に設定されている場合、または sunw_mp_register_warn() の呼び出しによりコールバック関数が登録されている場合は、警告メッセージが表示されます。
設定しない場合、デフォルトは FALSE です。
例: % setenv OMP_DISPLAY_ENV VERBOSE