67 lines · c
1// clang-format off2// RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s3// REQUIRES: ompt4// clang-format on5#include <omp.h>6#include "callback.h"7 8int main() {9 omp_set_nested(1);10#pragma omp parallel num_threads(2)11 {12#pragma omp barrier13#pragma omp parallel num_threads(2)14 { print_frame(0); }15 }16 17 // clang-format off18 // 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_end31 // 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_end35 // 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_end48 // 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_end52 // 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_end57 // 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_end62 // CHECK-SAME: thread_num=[[INNER_THREAD_NUM4]]63 // clang-format on64 65 return 0;66}67