[Openmp-commits] [PATCH] D50140: [OMPT] Fix taskloop testcase scheduling effects

Simon Convent via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Wed Aug 1 06:05:04 PDT 2018


sconvent created this revision.
sconvent added reviewers: Hahnfeld, protze.joachim, jlpeyton, hbae.

The taskloop testcase had scheduling effects. Tasks of the taskloop would sometimes be scheduled before all task were created. The testing is now split into two phases. First, the task creation on the master is tested, than the scheduling events of the tasks are tested. Thus, the order of creation and scheduling events is irrelavant.


https://reviews.llvm.org/D50140

Files:
  runtime/test/ompt/tasks/taskloop.c


Index: runtime/test/ompt/tasks/taskloop.c
===================================================================
--- runtime/test/ompt/tasks/taskloop.c
+++ runtime/test/ompt/tasks/taskloop.c
@@ -1,18 +1,22 @@
-// RUN: %libomp-compile && %libomp-run | FileCheck %s
+// RUN: %libomp-compile-and-run | FileCheck %s
+// RUN: %libomp-compile-and-run | FileCheck --check-prefix=TASKS %s
 // REQUIRES: ompt
 #include "callback.h"
 #include <omp.h>
 
 int main() {
-  unsigned int i, j, x;
+  unsigned int i, x;
 
 #pragma omp parallel num_threads(2)
+  {
+#pragma omp barrier
+
 #pragma omp master
 #pragma omp taskloop
-  for (j = 0; j < 5; j += 3) {
-    x++;
+    for (i = 0; i < 5; i += 3) {
+      x++;
+    }
   }
-
   // CHECK: 0: NULL_POINTER=[[NULL:.*$]]
 
   // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_parallel_begin:
@@ -39,16 +43,12 @@
   // CHECK-SAME: new_task_id=[[TASK_ID2:[0-9]+]]
   // CHECK-SAME: codeptr_ra=[[RETURN_ADDRESS]]
   // CHECK-SAME: task_type=ompt_task_explicit=4
+  // CHECK-NOT: {{^}}[[MASTER_ID]]: ompt_event_task_create:
   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskloop_end:
   // CHECK-SAME: parallel_id=[[PARALLEL_ID]]
   // CHECK-SAME: parent_task_id=[[IMPLICIT_TASK_ID1]]
   // CHECK-SAME: count=2
   // CHECK-DAG: {{^}}[[MASTER_ID]]: ompt_event_wait_taskgroup_begin:
-  // Schedule events:
-  // CHECK-DAG: {{^.*}}first_task_id={{[0-9]+}}, second_task_id=[[TASK_ID1]]
-  // CHECK-DAG: {{^.*}}first_task_id=[[TASK_ID1]], second_task_id={{[0-9]+}}
-  // CHECK-DAG: {{^.*}}first_task_id={{[0-9]+}}, second_task_id=[[TASK_ID2]]
-  // CHECK-DAG: {{^.*}}first_task_id=[[TASK_ID2]], second_task_id={{[0-9]+}}
   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_taskgroup_end:
   // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID1]]
   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskgroup_end:
@@ -58,5 +58,18 @@
   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_parallel_end:
   // CHECK-SAME: parallel_id=[[PARALLEL_ID]]
 
+  // TASKS: ompt_event_task_create:{{.*}} new_task_id={{[0-9]+}}
+  // TASKS-SAME: task_type=ompt_task_initial
+  // TASKS: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_taskloop_begin:
+  // TASKS: ompt_event_task_create:{{.*}} new_task_id=[[TASK_ID1:[0-9]+]]
+  // TASKS-SAME: task_type=ompt_task_explicit
+  // TASKS-DAG: ompt_event_task_create:{{.*}} new_task_id=[[TASK_ID2:[0-9]+]]
+  // Schedule events:
+  // TASKS-DAG: {{^.*}}first_task_id={{[0-9]+}}, second_task_id=[[TASK_ID1]]
+  // TASKS-DAG: {{^.*}}first_task_id=[[TASK_ID1]], second_task_id={{[0-9]+}}
+  // TASKS-DAG: {{^.*}}first_task_id={{[0-9]+}}, second_task_id=[[TASK_ID2]]
+  // TASKS-DAG: {{^.*}}first_task_id=[[TASK_ID2]], second_task_id={{[0-9]+}}
+  // TASKS-NOT: ompt_event_task_schedule
+
   return 0;
 }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50140.158517.patch
Type: text/x-patch
Size: 2741 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20180801/ea40e338/attachment-0001.bin>


More information about the Openmp-commits mailing list