Skip to content
User-defined scheduling of OpenMP parallel loops (ICPP `19)
C++ C Perl CMake Cuda Assembly Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake [CMake] Add -fno-experimental-isel for testing Feb 15, 2018
libomptarget
runtime User-defined Scheduling Implementation on LLVM OpenMP runtime Sep 4, 2019
www Remove liboffload from repository Jun 19, 2018
.arcconfig
.gitignore
CMakeLists.txt [CMake] Unify install path for libraries May 25, 2018
CREDITS.txt Cleanup version symbol macros and attributes/declspecs Nov 7, 2017
LICENSE.txt
README.rst
README_old.rst User-defined Scheduling Implementation on LLVM OpenMP runtime Sep 4, 2019

README.rst

LLVM* OpenMP* Runtime with User-defined Scheduling

This repository contains changes to enable user-defined scheduling in OpenMP parallel loop. Our work has been published in ICPP `19 (https://dl.acm.org/citation.cfm?id=3337913)

How to Build the LLVM* OpenMP* Libraries with User-defined Scheduling

  • Detailed instructions to build LLVM OpenMP are explained in README_old.rst

  • In addition to the settings based on the instructions, LIBOMP_ENABLE_USERSCHED should be turned on to enable user-defined scheduling.

    $ mkdir build
    $ cd build
    $ cmake ../ -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release
    -DLIBOMP_ENABLE_USERSCHED=On
    $ make
  • To load the runtime library ahead of the builtin runtime library in gcc, icc and clang, LD_PRELOAD should be used.

    $ export LD_PRELOAD=<build_directory>/runtime/src/libomp.so
  • To use API we suggested in the paper, the modified omp.h should be included. So, you need to include the directory where the header is. The headers should be included with the following compiler option.

    -I<build_directory>/runtime/src
  • Among two APIs we suggested in the paper, the subspace select function is not fully supported. The subspace selection is fixed as described in the paper. We'll support it later.

You can’t perform that action at this time.