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

Jonas Hahnfeld via Openmp-commits openmp-commits at lists.llvm.org
Thu Aug 2 04:50:24 PDT 2018


Hi Hans,

there will be two more fixes to tests that need to be backported 
(D50014, D50085) and D50086 which disables OMPT on Windows and hopefully 
avoids the problems you have been seeing in the last cycle. Sorry, we 
are a bit late :-(

Jonas

On 2018-08-02 13:33, Hans Wennborg via Openmp-commits wrote:
> 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
> _______________________________________________
> 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