#pragma MP taskloop private (<スレッド固有変数のリスト>) は、現在のループでスレッド固有変数として扱われる必要のあるすべての変数を指定します。ループで使用されている別の変数は、それ自体が明確に共有、読み取り専用、ストアバック、または縮約であることが指定されていない限り、デフォルトのスコープの規則に従って、共有またはスレッド固有のどちらかに分類されます。
スレッド固有変数とは、それ自体の値がループのある繰り返しを処理する CPU 専用になっている変数のことです。別の言い方をすれば、ループのある繰り返しを処理している CPU によってスレッド固有変数に代入された値は、そのループの別の繰り返しを処理している CPU から見ることはできません。スレッド固有変数には、ループの繰り返しの開始時に初期値は代入されず、繰り返し内で最初に使用される前に、その繰り返し内で値が代入されなければなりません。値が設定される前にその値を参照するように明確に宣言されたスレッド固有変数を持つループを実行すると、その動作は保証されません。