Udostępnij za pośrednictwem


zamówione (dyrektyw OpenMP)

Określa ten kod w obszarze jednordzeniowym pętli powinien być wykonywany jak sekwencyjnej pętli.

#pragma omp ordered
   structured-block

Uwagi

Uporządkowane dyrektywy muszą być w ramach dynamicznego zakresu (openmp) lub równoległych do konstruowania z uporządkowane klauzuli.

Uporządkowane dyrektywy nie obsługuje żadnych klauzul OpenMP.

Aby uzyskać więcej informacji, zobacz 2.6.6 uporządkowane konstrukcja.

Przykład

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

static float a[1000], b[1000], c[1000];

void test(int first, int last) 
{
    #pragma omp for schedule(static) ordered
    for (int i = first; i <= last; ++i) {
        // Do something here.
        if (i % 2) 
        {
            #pragma omp ordered 
            printf_s("test() iteration %d\n", i);
        }
    }
}

void test2(int iter) 
{
    #pragma omp ordered
    printf_s("test2() iteration %d\n", iter);
}

int main( ) 
{
    int i;
    #pragma omp parallel
    {
        test(1, 8);
        #pragma omp for ordered
        for (i = 0 ; i < 5 ; i++)
            test2(i);
    }
}
  

Zobacz też

Informacje

Dyrektyw OpenMP