次の方法で共有


master

マスター スレッドのみがプログラムのセクションを実行するように指定します。

#pragma omp master
{
   code_block
}

解説

master ディレクティブは OpenMP 句をサポートしません。

single ディレクティブを使用して、コードのセクションをシングル スレッドで実行するように指定できます。これは、必ずしもマスター スレッドである必要はありません。

詳細については、「2.6.1 master コンストラクト」を参照してください。

使用例

// omp_master.cpp
// compile with: /openmp 
#include <omp.h>
#include <stdio.h>

int main( ) 
{
    int a[5], i;

    #pragma omp parallel
    {
        // Perform some computation.
        #pragma omp for
        for (i = 0; i < 5; i++)
            a[i] = i * i;

        // Print intermediate results.
        #pragma omp master
            for (i = 0; i < 5; i++)
                printf_s("a[%d] = %d\n", i, a[i]);
      
        // Wait.
        #pragma omp barrier

        // Continue with the computation.
        #pragma omp for
        for (i = 0; i < 5; i++)
            a[i] += i;
    }
}
  

参照

参照

OpenMP ディレクティブ