[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