single
Vous permet de spécifier qu'une section de code doit être exécutée sur un thread unique, pas nécessairement le thread principal.
#pragma omp single [clauses]
{
code_block
}
Paramètres
- clause (facultatif)
zéro clauses ou plus. Consultez la section Notes pour une liste des clauses prises en charge par unique.
Notes
La directive d' unique prend en charge les clauses suivantes OpenMP :
La directive de master vous permet de spécifier qu'une section de code doit être exécutée uniquement sur le thread principal.
Pour plus d'informations, consultez 2.4.3 Construction simple.
Exemple
// omp_single.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
int main() {
#pragma omp parallel num_threads(2)
{
#pragma omp single
// Only a single thread can read the input.
printf_s("read input\n");
// Multiple threads in the team compute the results.
printf_s("compute results\n");
#pragma omp single
// Only a single thread can write the output.
printf_s("write output\n");
}
}