[all-commits] [llvm/llvm-project] fcd2d4: [OpenMP] runtime support for efficient partitionin...

vadikp-intel via All-commits all-commits at lists.llvm.org
Thu Mar 7 16:28:25 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fcd2d483251605f1b6cdace0ce5baf5dfd31b880
      https://github.com/llvm/llvm-project/commit/fcd2d483251605f1b6cdace0ce5baf5dfd31b880
  Author: vadikp-intel <vadim.paretsky at intel.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M openmp/runtime/src/kmp_collapse.cpp
    M openmp/runtime/src/kmp_collapse.h
    A openmp/runtime/test/worksharing/for/omp_for_collapse_LowerTriangularLess.c
    A openmp/runtime/test/worksharing/for/omp_for_collapse_LowerTriangularLessEqual.c
    A openmp/runtime/test/worksharing/for/omp_for_collapse_UpperTriangular.c

  Log Message:
  -----------
  [OpenMP] runtime support for efficient partitioning of collapsed triangular loops (#83939)

This PR adds OMP runtime support for more efficient partitioning of
certain types of collapsed loops that can be used by compilers that
support loop collapsing (i.e. MSVC) to achieve more optimal thread load
balancing.

In particular, this PR addresses double nested upper and lower isosceles
triangular loops of the following types

1. lower triangular 'less_than'
   for (int i=0; i<N; i++)
     for (int j=0; j<i; j++)
2. lower triangular 'less_than_equal'
   for (int i=0; i<N; j++)
     for (int j=0; j<=i; j++)
3. upper triangular
   for (int i=0; i<N; i++)
     for (int j=i; j<N; j++)

Includes tests for the three supported loop types.

---------

Co-authored-by: Vadim Paretsky <b-vadipa at microsoft.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list