6
6
7
7
int main ()
8
8
{
9
+ int condition = 0 , x = 0 ;
9
10
#pragma omp parallel num_threads(2)
10
11
{
11
12
#pragma omp master
12
13
{
13
- #pragma omp task
14
+ #pragma omp task shared(condition)
14
15
{
15
- sleep (1 );
16
+ #pragma omp task shared(condition)
17
+ {
18
+ OMPT_SIGNAL (condition );
19
+ OMPT_WAIT (condition ,2 );
20
+ }
21
+ OMPT_WAIT (condition ,1 );
22
+ #pragma omp task shared(x)
23
+ {
24
+ x ++ ;
25
+ }
26
+ printf ("%" PRIu64 ": before yield\n" , ompt_get_thread_data ()-> value );
16
27
#pragma omp taskyield
17
- sleep (1 );
18
- }
19
- #pragma omp task
20
- {
21
- sleep (1 );
28
+ printf ("%" PRIu64 ": after yield\n" , ompt_get_thread_data ()-> value );
29
+ OMPT_SIGNAL (condition );
22
30
}
23
31
}
24
32
}
@@ -27,22 +35,23 @@ int main()
27
35
// Check if libomp supports the callbacks for this test.
28
36
// CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_task_create'
29
37
// CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_task_schedule'
38
+ // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_implicit_task'
39
+
30
40
31
-
32
41
// CHECK: {{^}}0: NULL_POINTER=[[NULL:.*$]]
33
- // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_task_create: parent_task_id={{[0-9]+}}, parent_task_frame.exit=[[NULL]], parent_task_frame.reenter=[[NULL]], new_task_id=[[PARENT_TASK:[0-9]+]], parallel_function=0x{{[0-f]+}}, task_type=ompt_task_initial=1, has_dependences=no
34
- // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create: parent_task_id={{[0-9]+}}, parent_task_frame.exit={{0x[0-f]+}}, parent_task_frame.reenter={{0x[0-f]+}}, new_task_id=[[TASK_ONE:[0-9]+]], parallel_function={{0x[0-f]+}}, task_type=ompt_task_explicit=3, has_dependences=no
35
- // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create: parent_task_id={{[0-9]+}}, parent_task_frame.exit={{0x[0-f]+}}, parent_task_frame.reenter={{0x[0-f]+}}, new_task_id=[[TASK_TWO:[0-9]+]], parallel_function={{0x[0-f]+}}, task_type=ompt_task_explicit=3, has_dependences=no
42
+ // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_implicit_task_begin: parallel_id={{[0-9]+}}, task_id=[[IMPLICIT_TASK_ID:[0-9]+]], team_size={{[0-9]+}}, thread_num={{[0-9]+}}
36
43
44
+ // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create: parent_task_id={{[0-9]+}}, parent_task_frame.exit={{0x[0-f]+}}, parent_task_frame.reenter={{0x[0-f]+}}, new_task_id=[[OUTER_TASK:[0-9]+]], parallel_function={{0x[0-f]+}}, task_type=ompt_task_explicit=3, has_dependences=no
45
+ // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_schedule: first_task_id=[[IMPLICIT_TASK_ID]], second_task_id=[[OUTER_TASK]], prior_task_status=ompt_task_others=4
46
+ // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create: parent_task_id={{[0-9]+}}, parent_task_frame.exit={{0x[0-f]+}}, parent_task_frame.reenter={{0x[0-f]+}}, new_task_id=[[WORKER_TASK:[0-9]+]], parallel_function={{0x[0-f]+}}, task_type=ompt_task_explicit=3, has_dependences=no
47
+ // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create: parent_task_id={{[0-9]+}}, parent_task_frame.exit={{0x[0-f]+}}, parent_task_frame.reenter={{0x[0-f]+}}, new_task_id=[[INNER_TASK:[0-9]+]], parallel_function={{0x[0-f]+}}, task_type=ompt_task_explicit=3, has_dependences=no
37
48
38
- // CHECK: {{^}}[[MASTER_ID ]]: ompt_event_task_schedule: first_task_id={{[0-9]+}} , second_task_id=[[TASK_TWO ]], prior_task_status=ompt_task_others=4
39
- // CHECK: {{^}}[[MASTER_ID ]]: ompt_event_task_schedule: first_task_id=[[TASK_TWO ]], second_task_id={{[0-9]+}} , prior_task_status=ompt_task_complete=1
49
+ // CHECK: {{^}}[[THREAD_ID ]]: ompt_event_task_schedule: first_task_id=[[OUTER_TASK]] , second_task_id=[[INNER_TASK ]], prior_task_status=ompt_task_yield=2
50
+ // CHECK: {{^}}[[THREAD_ID ]]: ompt_event_task_schedule: first_task_id=[[INNER_TASK ]], second_task_id=[[OUTER_TASK]] , prior_task_status=ompt_task_complete=1
40
51
41
52
42
- // CHECK: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_task_schedule: first_task_id={{[0-9]+}}, second_task_id=[[TASK_ONE]], prior_task_status=ompt_task_others=4
43
- // CHECK: {{^}}[[THREAD_ID]]: ompt_event_task_schedule: first_task_id=[[TASK_ONE]], second_task_id=[[TASK_ONE]], prior_task_status=ompt_task_yield=2
44
- // missing schedule callbacks?
45
- // CHECK: {{^}}[[THREAD_ID]]: ompt_event_task_schedule: first_task_id=[[TASK_ONE]], second_task_id={{[0-9]+}}, prior_task_status=ompt_task_complete=1
53
+ // CHECK: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_task_schedule: first_task_id={{[0-9]+}}, second_task_id=[[WORKER_TASK]], prior_task_status=ompt_task_others=4
54
+ // CHECK: {{^}}[[THREAD_ID]]: ompt_event_task_schedule: first_task_id=[[WORKER_TASK]], second_task_id={{[0-9]+}}, prior_task_status=ompt_task_complete=1
46
55
47
56
48
57
0 commit comments