次の方法で共有


parallel

複数のスレッドによって並列実行される並行領域を定義します。

#pragma omp parallel [clauses]
{
      code_block
}

解説

指定項目

  • clause (省略可能)
    0 個以上の句。parallel によってサポートされている句の一覧については、「解説」を参照してください。

解説

parallel ディレクティブは次の OpenMP 句をサポートします。

parallelsections (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

説明

出力の順序はマシンによって異なります。

参照

概念

OpenMP ディレクティブ