diff options
| author | Hansang Bae <hansang.bae@intel.com> | 2019-08-03 02:38:53 +0000 |
|---|---|---|
| committer | Hansang Bae <hansang.bae@intel.com> | 2019-08-03 02:38:53 +0000 |
| commit | 67e93a1ae00f10450bfc1cfc1ca78498712f4b1f (patch) | |
| tree | 88a72274b190dd17f608215b42fe2827b82f32b3 /openmp/runtime/test | |
| parent | 25ab1c6471ff5f447ca75c66e6abee31620bcc03 (diff) | |
| download | bcm5719-llvm-67e93a1ae00f10450bfc1cfc1ca78498712f4b1f.tar.gz bcm5719-llvm-67e93a1ae00f10450bfc1cfc1ca78498712f4b1f.zip | |
Add OMPT support for teams construct
This change adds OMPT support for events from teams construct.
Differential Revision: https://reviews.llvm.org/D64025
llvm-svn: 367746
Diffstat (limited to 'openmp/runtime/test')
| -rwxr-xr-x | openmp/runtime/test/ompt/callback.h | 31 | ||||
| -rw-r--r-- | openmp/runtime/test/ompt/misc/interoperability.cpp | 10 | ||||
| -rw-r--r-- | openmp/runtime/test/ompt/teams/parallel_team.c | 81 | ||||
| -rw-r--r-- | openmp/runtime/test/ompt/teams/serial_teams.c | 89 | ||||
| -rw-r--r-- | openmp/runtime/test/ompt/teams/serialized.c | 62 | ||||
| -rw-r--r-- | openmp/runtime/test/ompt/teams/team.c | 49 |
6 files changed, 308 insertions, 14 deletions
diff --git a/openmp/runtime/test/ompt/callback.h b/openmp/runtime/test/ompt/callback.h index ed8ef60200a..64463ec83db 100755 --- a/openmp/runtime/test/ompt/callback.h +++ b/openmp/runtime/test/ompt/callback.h @@ -492,7 +492,8 @@ on_ompt_callback_implicit_task( char buffer[2048]; format_task_type(flags, buffer); - if(parallel_data->ptr) + // Only check initial task not created by teams construct + if (team_size == 1 && thread_num == 1 && parallel_data->ptr) printf("%s\n", "0: parallel_data initially not null"); parallel_data->value = ompt_get_unique_id(); printf("%" PRIu64 ": ompt_event_initial_task_begin: parallel_id=%" PRIu64 ", task_id=%" PRIu64 ", actual_parallelism=%" PRIu32 ", index=%" PRIu32 ", flags=%" PRIu32 "\n", ompt_get_thread_data()->value, parallel_data->value, task_data->value, team_size, thread_num, flags); @@ -503,7 +504,12 @@ on_ompt_callback_implicit_task( break; case ompt_scope_end: if(flags & ompt_task_initial){ - printf("%" PRIu64 ": ompt_event_initial_task_end: parallel_id=%" PRIu64 ", task_id=%" PRIu64 ", team_size=%" PRIu32 ", thread_num=%" PRIu32 "\n", ompt_get_thread_data()->value, (parallel_data)?parallel_data->value:0, task_data->value, team_size, thread_num); + printf("%" PRIu64 ": ompt_event_initial_task_end: parallel_id=%" PRIu64 + ", task_id=%" PRIu64 ", actual_parallelism=%" PRIu32 + ", index=%" PRIu32 "\n", + ompt_get_thread_data()->value, + (parallel_data) ? parallel_data->value : 0, task_data->value, + team_size, thread_num); } else { printf("%" PRIu64 ": ompt_event_implicit_task_end: parallel_id=%" PRIu64 ", task_id=%" PRIu64 ", team_size=%" PRIu32 ", thread_num=%" PRIu32 "\n", ompt_get_thread_data()->value, (parallel_data)?parallel_data->value:0, task_data->value, team_size, thread_num); } @@ -644,23 +650,28 @@ static void on_ompt_callback_parallel_begin( if(parallel_data->ptr) printf("0: parallel_data initially not null\n"); parallel_data->value = ompt_get_unique_id(); - printf("%" PRIu64 ": ompt_event_parallel_begin: parent_task_id=%" PRIu64 + int invoker = flag & 0xF; + const char *event = (flag & ompt_parallel_team) ? "parallel" : "teams"; + const char *size = (flag & ompt_parallel_team) ? "team_size" : "num_teams"; + printf("%" PRIu64 ": ompt_event_%s_begin: parent_task_id=%" PRIu64 ", parent_task_frame.exit=%p, parent_task_frame.reenter=%p, " - "parallel_id=%" PRIu64 ", requested_team_size=%" PRIu32 + "parallel_id=%" PRIu64 ", requested_%s=%" PRIu32 ", codeptr_ra=%p, invoker=%d\n", - ompt_get_thread_data()->value, encountering_task_data->value, + ompt_get_thread_data()->value, event, encountering_task_data->value, encountering_task_frame->exit_frame.ptr, - encountering_task_frame->enter_frame.ptr, parallel_data->value, - requested_team_size, codeptr_ra, flag); + encountering_task_frame->enter_frame.ptr, parallel_data->value, size, + requested_team_size, codeptr_ra, invoker); } static void on_ompt_callback_parallel_end(ompt_data_t *parallel_data, ompt_data_t *encountering_task_data, int flag, const void *codeptr_ra) { - printf("%" PRIu64 ": ompt_event_parallel_end: parallel_id=%" PRIu64 + int invoker = flag & 0xF; + const char *event = (flag & ompt_parallel_team) ? "parallel" : "teams"; + printf("%" PRIu64 ": ompt_event_%s_end: parallel_id=%" PRIu64 ", task_id=%" PRIu64 ", invoker=%d, codeptr_ra=%p\n", - ompt_get_thread_data()->value, parallel_data->value, - encountering_task_data->value, flag, codeptr_ra); + ompt_get_thread_data()->value, event, parallel_data->value, + encountering_task_data->value, invoker, codeptr_ra); } static void diff --git a/openmp/runtime/test/ompt/misc/interoperability.cpp b/openmp/runtime/test/ompt/misc/interoperability.cpp index cbb0e87a4bc..6f17a94c1f4 100644 --- a/openmp/runtime/test/ompt/misc/interoperability.cpp +++ b/openmp/runtime/test/ompt/misc/interoperability.cpp @@ -58,7 +58,8 @@ int main() { // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_initial_task_begin: parallel_id={{[0-9]+}} -// CHECK-SAME: task_id=[[PARENT_TASK_ID_1:[0-9]+]], actual_parallelism=1, index=1, flags=1 +// CHECK-SAME: task_id=[[PARENT_TASK_ID_1:[0-9]+]], actual_parallelism=1, +// CHECK-SAME: index=1, flags=1 // CHECK: {{^}}[[MASTER_ID_1]]: ompt_event_parallel_begin: // CHECK-SAME: parent_task_id=[[PARENT_TASK_ID_1]] @@ -73,7 +74,7 @@ int main() { // CHECK: {{^}}[[MASTER_ID_1]]: ompt_event_initial_task_end: // CHECK-SAME: parallel_id={{[0-9]+}}, task_id=[[PARENT_TASK_ID_1]], -// CHECK-SAME: team_size=0, thread_num=1 +// CHECK-SAME: actual_parallelism=0, index=1 // CHECK: {{^}}[[MASTER_ID_1]]: ompt_event_thread_end: // CHECK-SAME: thread_id=[[MASTER_ID_1]] @@ -83,7 +84,8 @@ int main() { // CHECK-SAME: thread_type=ompt_thread_initial=1, thread_id=[[MASTER_ID_2]] // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_initial_task_begin: parallel_id={{[0-9]+}} -// CHECK-SAME: task_id=[[PARENT_TASK_ID_2:[0-9]+]], actual_parallelism=1, index=1, flags=1 +// CHECK-SAME: task_id=[[PARENT_TASK_ID_2:[0-9]+]], actual_parallelism=1, +// CHECK-SAME: index=1, flags=1 // CHECK: {{^}}[[MASTER_ID_2]]: ompt_event_parallel_begin: // CHECK-SAME: parent_task_id=[[PARENT_TASK_ID_2]] @@ -99,7 +101,7 @@ int main() { // CHECK: {{^}}[[MASTER_ID_2]]: ompt_event_initial_task_end: // CHECK-SAME: parallel_id={{[0-9]+}}, task_id=[[PARENT_TASK_ID_2]], -// CHECK-SAME: team_size=0, thread_num=1 +// CHECK-SAME: actual_parallelism=0, index=1 // CHECK: {{^}}[[MASTER_ID_2]]: ompt_event_thread_end: // CHECK-SAME: thread_id=[[MASTER_ID_2]] diff --git a/openmp/runtime/test/ompt/teams/parallel_team.c b/openmp/runtime/test/ompt/teams/parallel_team.c new file mode 100644 index 00000000000..eb22edfdbef --- /dev/null +++ b/openmp/runtime/test/ompt/teams/parallel_team.c @@ -0,0 +1,81 @@ +// RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s +// REQUIRES: ompt +// UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7 +#include "callback.h" + +int main() { +#pragma omp target teams num_teams(1) thread_limit(2) +#pragma omp parallel num_threads(2) + { printf("In teams\n"); } + return 0; +} + +// CHECK: 0: NULL_POINTER=[[NULL:.*$]] + +// CHECK-NOT: 0: parallel_data initially not null +// CHECK-NOT: 0: task_data initially not null +// CHECK-NOT: 0: thread_data initially not null + +// CHECK: {{^}}[[MASTER:[0-9]+]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK:[0-9]+]], {{.*}}, index=1 + +// CHECK: {{^}}[[MASTER]]: ompt_event_teams_begin: +// CHECK-SAME: parent_task_id=[[INIT_TASK]] +// CHECK-SAME: {{.*}} requested_num_teams=1 +// CHECK-SAME: {{.*}} invoker=[[TEAMS_FLAGS:[0-9]+]] + +// +// team 0/thread 0 +// +// initial task in the teams construct +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK_0:[0-9]+]], actual_parallelism=1, index=0 + +// parallel region forked by runtime +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[INIT_TASK_0]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0:[0-9]+]] +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_begin: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0]], task_id=[[IMPL_TASK_0:[0-9]+]] + +// user parallel region +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[IMPL_TASK_0]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00:[0-9]+]] +// CHECK-SAME: {{.*}} requested_team_size=2 +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_begin: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00]], task_id=[[IMPL_TASK_00:[0-9]+]] +// CHECK-SAME: {{.*}} team_size=2, thread_num=0 +// +// barrier event is here +// +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_end: +// CHECK-SAME: {{.*}} parallel_id={{[0-9]+}}, task_id=[[IMPL_TASK_00]] +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00]], task_id=[[IMPL_TASK_0]] + +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_end: +// CHECK-SAME: {{.*}} parallel_id={{[0-9]+}}, task_id=[[IMPL_TASK_0]] +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0]], task_id=[[INIT_TASK_0]] + +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK_0]], actual_parallelism=0, index=0 + +// CHECK: {{^}}[[MASTER]]: ompt_event_teams_end: +// CHECK-SAME: {{.*}} task_id=[[INIT_TASK]], invoker=[[TEAMS_FLAGS]] + +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK]], {{.*}}, index=1 + +// +// team 0/thread 1 +// +// CHECK: {{^}}[[WORKER:[0-9]+]]: ompt_event_implicit_task_begin: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00]], task_id=[[IMPL_TASK_01:[0-9]+]] +// CHECK-SAME: {{.*}} team_size=2, thread_num=1 +// +// barrier event is here +// +// CHECK: {{^}}[[WORKER]]: ompt_event_implicit_task_end: +// CHECK-SAME: {{.*}} parallel_id={{[0-9]+}}, task_id=[[IMPL_TASK_01]] diff --git a/openmp/runtime/test/ompt/teams/serial_teams.c b/openmp/runtime/test/ompt/teams/serial_teams.c new file mode 100644 index 00000000000..a1f2d608b6a --- /dev/null +++ b/openmp/runtime/test/ompt/teams/serial_teams.c @@ -0,0 +1,89 @@ +// RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s +// REQUIRES: ompt +// UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7 +#include "callback.h" + +int main() { +#pragma omp target teams num_teams(2) thread_limit(1) +#pragma omp parallel num_threads(1) + { printf("In teams parallel\n"); } + return 0; +} + +// CHECK: 0: NULL_POINTER=[[NULL:.*$]] + +// CHECK-NOT: 0: parallel_data initially not null +// CHECK-NOT: 0: task_data initially not null +// CHECK-NOT: 0: thread_data initially not null + +// CHECK: {{^}}[[MASTER_0:[0-9]+]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK:[0-9]+]], {{.*}}, index=1 + +// CHECK: {{^}}[[MASTER_0]]: ompt_event_teams_begin: +// CHECK-SAME: parent_task_id=[[INIT_TASK]] +// CHECK-SAME: {{.*}} requested_num_teams=2 +// CHECK-SAME: {{.*}} invoker=[[TEAMS_FLAGS:[0-9]+]] + +// +// team 0 +// +// initial task in the teams construct +// CHECK: {{^}}[[MASTER_0]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK_0:[0-9]+]], actual_parallelism=2, index=0 + +// parallel region forked by runtime +// CHECK: {{^}}[[MASTER_0]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[INIT_TASK_0]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0:[0-9]+]] +// CHECK: {{^}}[[MASTER_0]]: ompt_event_implicit_task_begin: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0]], task_id=[[IMPL_TASK_0:[0-9]+]] + +// user parallel region +// CHECK: {{^}}[[MASTER_0]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[IMPL_TASK_0]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00:[0-9]+]] +// CHECK: {{^}}[[MASTER_0]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00]], task_id=[[IMPL_TASK_0]] + +// CHECK: {{^}}[[MASTER_0]]: ompt_event_implicit_task_end: +// CHECK-SAME: {{.*}} parallel_id={{[0-9]+}}, task_id=[[IMPL_TASK_0]] +// CHECK: {{^}}[[MASTER_0]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0]], task_id=[[INIT_TASK_0]] + +// CHECK: {{^}}[[MASTER_0]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK_0]], actual_parallelism=0, index=0 + +// CHECK: {{^}}[[MASTER_0]]: ompt_event_teams_end: +// CHECK-SAME: {{.*}} task_id=[[INIT_TASK]], invoker=[[TEAMS_FLAGS]] + +// CHECK: {{^}}[[MASTER_0]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK]], {{.*}}, index=1 + +// +// team 1 +// +// initial task in the teams construct +// CHECK: {{^}}[[MASTER_1:[0-9]+]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK_1:[0-9]+]], actual_parallelism=2, index=1 + +// parallel region forked by runtime +// CHECK: {{^}}[[MASTER_1]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[INIT_TASK_1]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_ID_1:[0-9]+]] +// CHECK: {{^}}[[MASTER_1]]: ompt_event_implicit_task_begin: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_ID_1]], task_id=[[IMPL_TASK_1:[0-9]+]] + +// user parallel region +// CHECK: {{^}}[[MASTER_1]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[IMPL_TASK_1]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_ID_11:[0-9]+]] +// CHECK: {{^}}[[MASTER_1]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_ID_11]], task_id=[[IMPL_TASK_1]] + +// CHECK: {{^}}[[MASTER_1]]: ompt_event_implicit_task_end: +// CHECK-SAME: {{.*}} parallel_id={{[0-9]+}}, task_id=[[IMPL_TASK_1]] +// CHECK: {{^}}[[MASTER_1]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_ID_1]], task_id=[[INIT_TASK_1]] + +// CHECK: {{^}}[[MASTER_1]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK_1]], actual_parallelism=0, index=1 diff --git a/openmp/runtime/test/ompt/teams/serialized.c b/openmp/runtime/test/ompt/teams/serialized.c new file mode 100644 index 00000000000..8787b921817 --- /dev/null +++ b/openmp/runtime/test/ompt/teams/serialized.c @@ -0,0 +1,62 @@ +// RUN: %libomp-compile-and-run | FileCheck %s +// REQUIRES: ompt +// UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7 +#include "callback.h" + +int main() { +#pragma omp target teams num_teams(1) thread_limit(1) +#pragma omp parallel num_threads(1) + { printf("In teams\n"); } + return 0; +} + +// CHECK: 0: NULL_POINTER=[[NULL:.*$]] + +// CHECK-NOT: 0: parallel_data initially not null +// CHECK-NOT: 0: task_data initially not null +// CHECK-NOT: 0: thread_data initially not null + +// CHECK: {{^}}[[MASTER:[0-9]+]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK:[0-9]+]], {{.*}}, index=1 + +// CHECK: {{^}}[[MASTER]]: ompt_event_teams_begin: +// CHECK-SAME: parent_task_id=[[INIT_TASK]] +// CHECK-SAME: {{.*}} requested_num_teams=1 +// CHECK-SAME: {{.*}} invoker=[[TEAMS_FLAGS:[0-9]+]] + +// initial task in the teams construct starts +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK_0:[0-9]+]], actual_parallelism=1, index=0 + +// parallel region forked by runtime +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[INIT_TASK_0]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0:[0-9]+]] +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_begin: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0]], task_id=[[IMPL_TASK_0:[0-9]+]] + +// user parallel region +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[IMPL_TASK_0]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00:[0-9]+]] +// CHECK-SAME: {{.*}} requested_team_size=1 +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_begin: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00]], task_id=[[IMPL_TASK_00:[0-9]+]] +// CHECK-SAME: {{.*}} team_size=1, thread_num=0 +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_end: +// CHECK-SAME: {{.*}} parallel_id={{[0-9]+}}, task_id=[[IMPL_TASK_00]] +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_00]], task_id=[[IMPL_TASK_0]] + +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0]], task_id=[[INIT_TASK_0]] + +// initial task in the teams construct ends +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK_0]], actual_parallelism=0, index=0 + +// CHECK: {{^}}[[MASTER]]: ompt_event_teams_end: +// CHECK-SAME: {{.*}} task_id=[[INIT_TASK]], invoker=[[TEAMS_FLAGS]] + +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK]], {{.*}}, index=1 diff --git a/openmp/runtime/test/ompt/teams/team.c b/openmp/runtime/test/ompt/teams/team.c new file mode 100644 index 00000000000..78f8b7c28c8 --- /dev/null +++ b/openmp/runtime/test/ompt/teams/team.c @@ -0,0 +1,49 @@ +// RUN: %libomp-compile-and-run | FileCheck %s +// REQUIRES: ompt +// UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7 +#include "callback.h" + +int main() { +#pragma omp target teams num_teams(1) thread_limit(1) + { printf("In teams\n"); } + return 0; +} + +// CHECK: 0: NULL_POINTER=[[NULL:.*$]] + +// CHECK-NOT: 0: parallel_data initially not null +// CHECK-NOT: 0: task_data initially not null +// CHECK-NOT: 0: thread_data initially not null + +// CHECK: {{^}}[[MASTER:[0-9]+]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK:[0-9]+]], {{.*}}, index=1 + +// CHECK: {{^}}[[MASTER]]: ompt_event_teams_begin: +// CHECK-SAME: parent_task_id=[[INIT_TASK]] +// CHECK-SAME: {{.*}} requested_num_teams=1 +// CHECK-SAME: {{.*}} invoker=[[TEAMS_FLAGS:[0-9]+]] + +// initial task in the teams construct starts +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_begin: +// CHECK-SAME: task_id=[[INIT_TASK_0:[0-9]+]], actual_parallelism=1, index=0 + +// parallel region forked by runtime +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_begin: +// CHECK-SAME: {{.*}} parent_task_id=[[INIT_TASK_0]] +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0:[0-9]+]] +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_begin: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0]], task_id=[[IMPL_TASK_0:[0-9]+]] +// CHECK: {{^}}[[MASTER]]: ompt_event_implicit_task_end: +// CHECK-SAME: {{.*}} parallel_id={{[0-9]+}}, task_id=[[IMPL_TASK_0]] +// CHECK: {{^}}[[MASTER]]: ompt_event_parallel_end: +// CHECK-SAME: {{.*}} parallel_id=[[PAR_0]], task_id=[[INIT_TASK_0]] + +// initial task in the teams construct ends +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK_0]], actual_parallelism=0, index=0 + +// CHECK: {{^}}[[MASTER]]: ompt_event_teams_end: +// CHECK-SAME: {{.*}} task_id=[[INIT_TASK]], invoker=[[TEAMS_FLAGS]] + +// CHECK: {{^}}[[MASTER]]: ompt_event_initial_task_end: +// CHECK-SAME: task_id=[[INIT_TASK]], {{.*}}, index=1 |

