master
Specifica che solo il threadshould master esegue una sezione del programma.
#pragma omp master
{
code_block
}
Note
master la direttiva non supporta clausole di OpenMP.
singolo la direttiva consente di specificare che una sezione di codice deve essere eseguito in un unico thread, non necessariamente il thread master.
Per ulteriori informazioni, vedere Costrutto master 2.6.1.
Esempio
// 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;
}
}