1*404b540aSrobert #include <stdlib.h> 2*404b540aSrobert 3*404b540aSrobert int cnt; 4*404b540aSrobert 5*404b540aSrobert void check(int x)6*404b540aSrobertcheck (int x) 7*404b540aSrobert { 8*404b540aSrobert if (cnt++ != x) 9*404b540aSrobert abort (); 10*404b540aSrobert } 11*404b540aSrobert 12*404b540aSrobert int main(void)13*404b540aSrobertmain (void) 14*404b540aSrobert { 15*404b540aSrobert int j; 16*404b540aSrobert 17*404b540aSrobert cnt = 0; 18*404b540aSrobert #pragma omp parallel for ordered schedule (static, 1) num_threads (4) if (0) 19*404b540aSrobert for (j = 0; j < 1000; j++) 20*404b540aSrobert { 21*404b540aSrobert #pragma omp ordered 22*404b540aSrobert check (j); 23*404b540aSrobert } 24*404b540aSrobert 25*404b540aSrobert cnt = 0; 26*404b540aSrobert #pragma omp parallel for ordered schedule (static, 1) num_threads (4) if (1) 27*404b540aSrobert for (j = 0; j < 1000; j++) 28*404b540aSrobert { 29*404b540aSrobert #pragma omp ordered 30*404b540aSrobert check (j); 31*404b540aSrobert } 32*404b540aSrobert 33*404b540aSrobert cnt = 0; 34*404b540aSrobert #pragma omp parallel for ordered schedule (runtime) num_threads (4) if (0) 35*404b540aSrobert for (j = 0; j < 1000; j++) 36*404b540aSrobert { 37*404b540aSrobert #pragma omp ordered 38*404b540aSrobert check (j); 39*404b540aSrobert } 40*404b540aSrobert 41*404b540aSrobert cnt = 0; 42*404b540aSrobert #pragma omp parallel for ordered schedule (runtime) num_threads (4) if (1) 43*404b540aSrobert for (j = 0; j < 1000; j++) 44*404b540aSrobert { 45*404b540aSrobert #pragma omp ordered 46*404b540aSrobert check (j); 47*404b540aSrobert } 48*404b540aSrobert 49*404b540aSrobert cnt = 0; 50*404b540aSrobert #pragma omp parallel for ordered schedule (dynamic) num_threads (4) if (0) 51*404b540aSrobert for (j = 0; j < 1000; j++) 52*404b540aSrobert { 53*404b540aSrobert #pragma omp ordered 54*404b540aSrobert check (j); 55*404b540aSrobert } 56*404b540aSrobert 57*404b540aSrobert cnt = 0; 58*404b540aSrobert #pragma omp parallel for ordered schedule (dynamic) num_threads (4) if (1) 59*404b540aSrobert for (j = 0; j < 1000; j++) 60*404b540aSrobert { 61*404b540aSrobert #pragma omp ordered 62*404b540aSrobert check (j); 63*404b540aSrobert } 64*404b540aSrobert 65*404b540aSrobert cnt = 0; 66*404b540aSrobert #pragma omp parallel for ordered schedule (guided) num_threads (4) if (0) 67*404b540aSrobert for (j = 0; j < 1000; j++) 68*404b540aSrobert { 69*404b540aSrobert #pragma omp ordered 70*404b540aSrobert check (j); 71*404b540aSrobert } 72*404b540aSrobert 73*404b540aSrobert cnt = 0; 74*404b540aSrobert #pragma omp parallel for ordered schedule (guided) num_threads (4) if (1) 75*404b540aSrobert for (j = 0; j < 1000; j++) 76*404b540aSrobert { 77*404b540aSrobert #pragma omp ordered 78*404b540aSrobert check (j); 79*404b540aSrobert } 80*404b540aSrobert 81*404b540aSrobert return 0; 82*404b540aSrobert } 83