parallel
複数のスレッドによって並列実行される並行領域を定義します。
#pragma omp parallel [clauses]
{
code_block
}
解説
指定項目
- clause (省略可能)
0 個以上の句。parallel によってサポートされている句の一覧については、「解説」を参照してください。
解説
parallel ディレクティブは次の OpenMP 句をサポートします。
parallel は sections (OpenMP) ディレクティブと for (OpenMP) ディレクティブとも併用できます。
詳細については、「2.3 parallel コンストラクト」を参照してください。
使用例
次の例では、スレッド数を設定し、並行領域を定義する方法を示します。既定では、スレッド数は、そのマシン上の論理プロセッサ数と同じになります。たとえば、ハイパースレッディングが有効になっている物理プロセッサを 1 つ持つマシンの場合、2 つの論理プロセッサが存在するため、スレッド数は 2 になります。
// omp_parallel.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
int main() {
#pragma omp parallel num_threads(4)
{
int i = omp_get_thread_num();
printf_s("Hello from thread %d\n", i);
}
}
Hello from thread 0
Hello from thread 1
Hello from thread 2
Hello from thread 3
説明
出力の順序はマシンによって異なります。