Sdílet prostřednictvím


2.6.3 barrier – direktiva

Bariéry směrnice synchronizuje všechny podprocesy v týmu.Při výskytu, každý podproces v týmu čeká všechny ostatní dosáhli tohoto bodu.Syntaxe bariéry směrnice je následující:

#pragma omp barrier new-line

Po všechny podprocesy v týmu došlo bariéry, začíná každý podproces v týmu provádění výkazů za překážku souběžně.Všimněte si, že protože bariéry směrnice nemá prohlášení jako součást jeho syntaxi jazyka C, existují určitá omezení na jeho umístění v programu.Viz Dodatku C pro formální gramatiky.Následující příklad ilustruje těchto omezení.

/* ERROR - The barrier directive cannot be the immediate
*          substatement of an if statement
*/
if (x!=0)
   #pragma omp barrier
...

/* OK - The barrier directive is enclosed in a
*      compound statement.
*/
if (x!=0) {
   #pragma omp barrier
}