OMP_PLACES

OMP_PLACES 環境変数は、OpenMP プログラムの実行時に使用できるプレースのリストを指定します。 OMP_PLACES の値は、 以下のいずれかの値にすることができます。
  • 負でない数値で記述されるプレースの明示的なリスト
  • プレース・セットを記述する要約名
構文図を読む構文図をスキップする
OMP_PLACES 構文

>>-OMP_PLACES=--+-place_list-+---------------------------------><
                '-place_name-'   

place_list は、 以下のいずれかの構文形式をとります。
構文図を読む構文図をスキップする
place_list 構文: 形式 1

   .-,------------------------------------------------------.   
   V .-!-.                                                  |   
>>---+---+--{--+-lower_bound--:--length--+-----------+-+--}-+--><
               |                         '-:--stride-' |        
               | .-,---.                               |        
               | V     |                               |        
               '---num-+-------------------------------'        

構文図を読む構文図をスキップする
place_list 構文: 形式 2

   .-!-.                                                               
>>-+---+--{--lower_bound--:--length--}--:--num_places--:--multiplier-><

lower_boundlengthstridenumnum_places、 および multiplier は正整数です。 それぞれのプレースにおけるスレッド番号は、multiplier の倍数となる値から始まります。 除外演算子 ! が指定された場合は、その排他演算子の直後にあるプレースの番号が除外されます。
構文図を読む構文図をスキップする
place_name 構文

   .-cores---.                         
>>-+-threads-+--+------------------+---------------------------><
                '-(--num_places--)-'   

threads
各プレースにハードウェア・スレッドが含まれます。
cores
各プレースにコアが含まれます。 OMP_PLACES が設定されない場合のデフォルト設定は cores です。
num_places
これはプレースの数です。

使用法

要求されるプレースの数が、システムで使用できるプレースの数より少ない場合、実行環境では、プレース・リストの順番でプレースが実行時に割り当てられます。 要求されるプレースの数が、システムで使用できるプレースの数より多い場合、実行環境では、システムでサポートされる最大数のプレースが実行時に割り当てられます。

OpenMP コードと OpenMPI コードの両方が含まれるプログラムの場合、OpenMP ランタイムでは、OMPI_COMM_WORLD_RANK 環境変数が存在することによって、OpenMPI コードが存在することが判明します。 OMP_PLACES を明示的に設定しない場合、 コンパイラーは OMP_PLACEScores に設定し、OpenMPI 類縁性ポリシーに基づいて使用不可リソースを OMP_PLACES から削除します。 また、OMP_PROC_BINDTRUE に設定されます。

OMP_PLACES 環境変数の設定方法に関する例については、OMP_PROC_BIND の例を参照してください。