[Openmp-commits] [openmp] [OpenMP] Sync the team task for serialized parallel (PR #85600)

via Openmp-commits openmp-commits at lists.llvm.org
Mon Mar 18 11:46:19 PDT 2024


https://github.com/lwshanbd updated https://github.com/llvm/llvm-project/pull/85600

>From 34456f0b7cdd45e90587b25830e103ea4e6b339a Mon Sep 17 00:00:00 2001
From: Baodi Shan <lwshanbd at gmail.com>
Date: Mon, 18 Mar 2024 00:46:38 -0400
Subject: [PATCH 1/2] [OpenMP] Sync the team task for serialized parallel.

---
 openmp/runtime/src/kmp_barrier.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/openmp/runtime/src/kmp_barrier.cpp b/openmp/runtime/src/kmp_barrier.cpp
index e9ab15f1723b66..aa4b9aab43340a 100644
--- a/openmp/runtime/src/kmp_barrier.cpp
+++ b/openmp/runtime/src/kmp_barrier.cpp
@@ -2043,7 +2043,7 @@ static int __kmp_barrier_template(enum barrier_type bt, int gtid, int is_split,
                 TRUE);
         __kmp_task_team_wait(this_thr, team USE_ITT_BUILD_ARG(itt_sync_obj));
         __kmp_task_team_setup(this_thr, team, 0);
-
+        __kmp_task_team_sync(this_thr, team);
 #if USE_ITT_BUILD
         if (__itt_sync_create_ptr || KMP_ITT_DEBUG)
           __kmp_itt_barrier_finished(gtid, itt_sync_obj);

>From 51d848954d2e9067c41851002fca9af9d4f62276 Mon Sep 17 00:00:00 2001
From: Baodi Shan <lwshanbd at gmail.com>
Date: Mon, 18 Mar 2024 14:45:47 -0400
Subject: [PATCH 2/2] Add test for Bug #81488

---
 openmp/runtime/test/tasking/bug_81488.c | 33 +++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 openmp/runtime/test/tasking/bug_81488.c

diff --git a/openmp/runtime/test/tasking/bug_81488.c b/openmp/runtime/test/tasking/bug_81488.c
new file mode 100644
index 00000000000000..853a0e5e3e06f2
--- /dev/null
+++ b/openmp/runtime/test/tasking/bug_81488.c
@@ -0,0 +1,33 @@
+// RUN: %libomp-compile-and-run
+// RUN: %libomp-cxx-compile && env OMP_NUM_THREADS=1 %libomp-run
+
+/*
+https://github.com/llvm/llvm-project/issues/81488
+
+Assertion failure at kmp_runtime.cpp(2460): master_th->th.th_task_team == team->t.t_task_team[master_th->th.th_task_state].
+OMP: Error #13: Assertion failure at kmp_runtime.cpp(2460).
+
+The assertion fails with OMP_NUM_THREADS=1.
+
+*/
+
+# include <omp.h>
+
+# define Nz  8
+# define DEVICE_ID  0
+
+int
+main(void)
+{
+    # pragma omp parallel
+    {
+        # pragma omp single
+        {
+            # pragma omp target teams distribute parallel for nowait device(DEVICE_ID)
+            for (int i = 0 ; i < Nz ; ++i)
+                {}
+        }
+        # pragma omp barrier
+    }
+    return 0;
+}
\ No newline at end of file



More information about the Openmp-commits mailing list