Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
Specifies that code under a parallelized for loop should be executed like a sequential loop.
Syntax
#pragma omp ordered
structured-block
Remarks
The ordered directive must be within the dynamic extent of a for or parallel for construct with an ordered clause.
The ordered directive supports no OpenMP clauses.
For more information, see 2.6.6 ordered Construct.
Example
// 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);
}
}
test
() iteration 1
test
() iteration 3
test
() iteration 5
test
() iteration 7
test2
() iteration 0
test2
() iteration 1
test2
() iteration 2
test2
() iteration 3
test2
() iteration 4