1*404b540aSrobert #include <omp.h> 2*404b540aSrobert #include <stdlib.h> 3*404b540aSrobert 4*404b540aSrobert int main(void)5*404b540aSrobertmain (void) 6*404b540aSrobert { 7*404b540aSrobert int i = -1, j = -1; 8*404b540aSrobert 9*404b540aSrobert omp_set_nested (0); 10*404b540aSrobert omp_set_dynamic (0); 11*404b540aSrobert #pragma omp parallel num_threads (4) 12*404b540aSrobert { 13*404b540aSrobert #pragma omp single 14*404b540aSrobert { 15*404b540aSrobert i = omp_get_thread_num () + omp_get_num_threads () * 256; 16*404b540aSrobert #pragma omp parallel num_threads (2) 17*404b540aSrobert { 18*404b540aSrobert #pragma omp single 19*404b540aSrobert { 20*404b540aSrobert j = omp_get_thread_num () + omp_get_num_threads () * 256; 21*404b540aSrobert } 22*404b540aSrobert } 23*404b540aSrobert } 24*404b540aSrobert } 25*404b540aSrobert if (i < 4 * 256 || i >= 4 * 256 + 4) 26*404b540aSrobert abort (); 27*404b540aSrobert if (j != 256 + 0) 28*404b540aSrobert abort (); 29*404b540aSrobert return 0; 30*404b540aSrobert } 31