LLVM OpenMP 22.0.0git
nested_threadnum.c
Go to the documentation of this file.
1// clang-format off
2// RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s
3// REQUIRES: ompt
4// clang-format on
5#include <omp.h>
6#include "callback.h"
7
8int main() {
10#pragma omp parallel num_threads(2)
11 {
12#pragma omp barrier
13#pragma omp parallel num_threads(2)
14 { print_frame(0); }
15 }
16
17 // clang-format off
18 // CHECK: 0: NULL_POINTER=[[NULL:.*$]]
19
20 // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_parallel_begin:
21 // CHECK-SAME: parallel_id=[[PARALLEL_ID:[0-f]+]]
22 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_begin:
23 // CHECK-SAME: parallel_id=[[PARALLEL_ID]]
24 // CHECK-SAME: thread_num=[[OUTER_THREAD_NUM1:[0-9]+]]
25 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_parallel_begin:
26 // CHECK-SAME: parallel_id=[[INNER_PARALLEL_ID1:[0-9]+]]
27 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_begin:
28 // CHECK-SAME: parallel_id=[[INNER_PARALLEL_ID1]]
29 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM1:[0-9]+]]
30 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_end
31 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM1]]
32 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_parallel_end:
33 // CHECK-SAME: parallel_id=[[INNER_PARALLEL_ID1]]
34 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_end
35 // CHECK-SAME: thread_num=[[OUTER_THREAD_NUM1]]
36 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_parallel_end:
37 // CHECK-SAME: parallel_id=[[PARALLEL_ID]]
38
39 // CHECK: {{^}}[[WORKER_ID1:[0-9]+]]: ompt_event_implicit_task_begin:
40 // CHECK-SAME: parallel_id=[[PARALLEL_ID]]
41 // CHECK-SAME: thread_num=[[OUTER_THREAD_NUM2:[0-9]+]]
42 // CHECK: {{^}}[[WORKER_ID1]]: ompt_event_parallel_begin:
43 // CHECK-SAME: parallel_id=[[INNER_PARALLEL_ID2:[0-9]+]]
44 // CHECK: {{^}}[[WORKER_ID1]]: ompt_event_implicit_task_begin:
45 // CHECK-SAME: parallel_id=[[INNER_PARALLEL_ID2]]
46 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM2:[0-9]+]]
47 // CHECK: {{^}}[[WORKER_ID1]]: ompt_event_implicit_task_end
48 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM2]]
49 // CHECK: {{^}}[[WORKER_ID1]]: ompt_event_parallel_end:
50 // CHECK-SAME: parallel_id=[[INNER_PARALLEL_ID2]]
51 // CHECK: {{^}}[[WORKER_ID1]]: ompt_event_implicit_task_end
52 // CHECK-SAME: thread_num=[[OUTER_THREAD_NUM2]]
53
54 // CHECK: {{^}}[[WORKER_ID2:[0-9]+]]: ompt_event_implicit_task_begin:
55 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM3:[0-9]+]]
56 // CHECK: {{^}}[[WORKER_ID2]]: ompt_event_implicit_task_end
57 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM3]]
58
59 // CHECK: {{^}}[[WORKER_ID3:[0-9]+]]: ompt_event_implicit_task_begin:
60 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM4:[0-9]+]]
61 // CHECK: {{^}}[[WORKER_ID3]]: ompt_event_implicit_task_end
62 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM4]]
63 // clang-format on
64
65 return 0;
66}
#define print_frame(level)
Definition callback.h:210
#define omp_set_nested
Definition kmp_stub.cpp:36
int main()