2.0 omp single nowait omp critical,omp atomic #include #include "omp_testsuite.h" int my_iterations; #pragma omp threadprivate(my_iterations) int omp_single_nowait(FILE * logFile) { int nr_iterations; int total_iterations = 0; int i; nr_iterations = 0; my_iterations = 0; #pragma omp parallel private(i) { for (i = 0; i < LOOPCOUNT; i++) { #pragma omp single nowait { #pragma omp atomic nr_iterations++; } /* end of single*/ } /* end of for */ } /* end of parallel */ #pragma omp parallel private(i) { my_iterations = 0; for (i = 0; i < LOOPCOUNT; i++) { #pragma omp single nowait { my_iterations++; } /* end of single*/ } /* end of for */ #pragma omp critical { total_iterations += my_iterations; } } /* end of parallel */ return ((nr_iterations == LOOPCOUNT) && (total_iterations == LOOPCOUNT)); } /* end of check_single_nowait*/