111
|
1 #include <omp.h>
|
|
2 #include <stdlib.h>
|
|
3
|
|
4 int
|
|
5 main ()
|
|
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 }
|