[Openmp-commits] [openmp] r338580 - [OMPT, tests] Fix taskloop testcase scheduling effects

Hans Wennborg via Openmp-commits openmp-commits at lists.llvm.org
Thu Aug 2 04:33:44 PDT 2018


Merged to 7.0 in r338704, hoping it will fix the test failure on Darwin.

On Wed, Aug 1, 2018 at 6:15 PM, Joachim Protze via Openmp-commits
<openmp-commits at lists.llvm.org> wrote:
> Author: jprotze
> Date: Wed Aug  1 09:15:18 2018
> New Revision: 338580
>
> URL: http://llvm.org/viewvc/llvm-project?rev=338580&view=rev
> Log:
> [OMPT,tests] Fix taskloop testcase scheduling effects
>
> 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.
>
> Patch by Simon Convent
>
> Reviewed by: protze.joachim, Hahnfeld
>
> Subscribers: openmp-commits
>
> Differential Revision: https://reviews.llvm.org/D50140
>
> Modified:
>     openmp/trunk/runtime/test/ompt/tasks/taskloop.c
>
> Modified: openmp/trunk/runtime/test/ompt/tasks/taskloop.c
> URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/test/ompt/tasks/taskloop.c?rev=338580&r1=338579&r2=338580&view=diff
> ==============================================================================
> --- openmp/trunk/runtime/test/ompt/tasks/taskloop.c (original)
> +++ openmp/trunk/runtime/test/ompt/tasks/taskloop.c Wed Aug  1 09:15:18 2018
> @@ -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 @@ int main() {
>    // 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 @@ int main() {
>    // 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;
>  }
>
>
> _______________________________________________
> Openmp-commits mailing list
> Openmp-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-commits


More information about the Openmp-commits mailing list