1#include <omp.h> 2#include <stdlib.h> 3 4int 5main () 6{ 7 int d_o = omp_get_dynamic (); 8 int n_o = omp_get_nested (); 9 omp_sched_t s_o; 10 int c_o; 11 omp_get_schedule (&s_o, &c_o); 12 int m_o = omp_get_max_threads (); 13 omp_set_dynamic (1); 14 omp_set_nested (1); 15 omp_set_schedule (omp_sched_static, 2); 16 omp_set_num_threads (4); 17 int d = omp_get_dynamic (); 18 int n = omp_get_nested (); 19 omp_sched_t s; 20 int c; 21 omp_get_schedule (&s, &c); 22 int m = omp_get_max_threads (); 23 if (!omp_is_initial_device ()) 24 abort (); 25 #pragma omp target if (0) 26 { 27 omp_sched_t s_c; 28 int c_c; 29 omp_get_schedule (&s_c, &c_c); 30 if (d_o != omp_get_dynamic () 31 || n_o != omp_get_nested () 32 || s_o != s_c 33 || c_o != c_c 34 || m_o != omp_get_max_threads ()) 35 abort (); 36 omp_set_dynamic (0); 37 omp_set_nested (0); 38 omp_set_schedule (omp_sched_dynamic, 4); 39 omp_set_num_threads (2); 40 if (!omp_is_initial_device ()) 41 abort (); 42 } 43 if (!omp_is_initial_device ()) 44 abort (); 45 omp_sched_t s_c; 46 int c_c; 47 omp_get_schedule (&s_c, &c_c); 48 if (d != omp_get_dynamic () 49 || n != omp_get_nested () 50 || s != s_c 51 || c != c_c 52 || m != omp_get_max_threads ()) 53 abort (); 54 #pragma omp target if (0) 55 #pragma omp teams 56 { 57 omp_sched_t s_c; 58 int c_c; 59 omp_get_schedule (&s_c, &c_c); 60 if (d_o != omp_get_dynamic () 61 || n_o != omp_get_nested () 62 || s_o != s_c 63 || c_o != c_c 64 || m_o != omp_get_max_threads ()) 65 abort (); 66 omp_set_dynamic (0); 67 omp_set_nested (0); 68 omp_set_schedule (omp_sched_dynamic, 4); 69 omp_set_num_threads (2); 70 if (!omp_is_initial_device ()) 71 abort (); 72 } 73 if (!omp_is_initial_device ()) 74 abort (); 75 omp_get_schedule (&s_c, &c_c); 76 if (d != omp_get_dynamic () 77 || n != omp_get_nested () 78 || s != s_c 79 || c != c_c 80 || m != omp_get_max_threads ()) 81 abort (); 82 return 0; 83} 84