[all-commits] [llvm/llvm-project] 5dd4d0: [OpenMP] libomp: fix dynamic loop dispatcher

Andrey Churbanov via All-commits all-commits at lists.llvm.org
Tue Jun 22 06:29:39 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5dd4d0d46fb892975bbb3a086da5a3a9996ced4d
      https://github.com/llvm/llvm-project/commit/5dd4d0d46fb892975bbb3a086da5a3a9996ced4d
  Author: AndreyChurbanov <andrey.churbanov at intel.com>
  Date:   2021-06-22 (Tue, 22 Jun 2021)

  Changed paths:
    M openmp/runtime/src/kmp.h
    M openmp/runtime/src/kmp_dispatch.cpp
    M openmp/runtime/src/kmp_dispatch.h
    M openmp/runtime/src/kmp_dispatch_hier.h
    M openmp/runtime/src/kmp_settings.cpp
    M openmp/runtime/test/env/kmp_set_dispatch_buf.c
    M openmp/runtime/test/worksharing/for/kmp_set_dispatch_buf.c
    M openmp/runtime/test/worksharing/for/omp_for_schedule_runtime.c
    A openmp/runtime/test/worksharing/for/omp_par_in_loop.c

  Log Message:
  -----------
  [OpenMP] libomp: fix dynamic loop dispatcher

Restructured dynamic loop dispatcher code.
Fixed use of dispatch buffers for nonmonotonic dynamic (static_steal) schedule:
- eliminated possibility of stealing iterations of the wrong loop when victim
  thread changed its buffer to work on another loop;
- fixed race when victim thread changed its buffer to work in nested parallel;
- eliminated "static" property of the schedule, that is now a single thread can
  execute whole loop.

Differential Revision: https://reviews.llvm.org/D103648




More information about the All-commits mailing list