Mentions légales du service

Skip to content
Snippets Groups Projects
Forked from openmp / libkomp
Up to date with the upstream repository.
user avatar
Thierry authored
[fix] provide patch to add priority to task without support frm the compiler, such as ICC 2017 ou 2018
32781b6d
History

Welcome to the libKOMP repository

libKOMP is based on libomp, the Intel OpenMP runtime for icc/ifort and clang compilers. The current version is based on branch release_39.

We extend the origin libomp runtime to include some missing features or to add algorithms provided by KAAPI such as work stealing protocol, task scheduling or loop scheduling. Our goal was to produce a robust OpenMP library with very low overhead in task scheduling and loop scheduling for a wide range of applications and architectures, including NUMA architecture and many-core such as Intel Xeon Phi.

In this version

The current extensions include:

  • T.H.E. protocol for work stealing This protocol comes from Cilk it gives priority to victim thread in order to make progress. Victim and thief are concurrent except in rare case where they are serialized.
  • request combining Thanks to the T.H.E. serialization, the thieves make coordination in order to steal together a victim.
  • task affinity scheduler On NUMA architecture it is important to control affinity between task and data. The affinity scheduler is both a scheduling algorithm and a compiler extension to provide specifc clause for the OpenMP task directive. It is also possibile to make OpenMP runtime function call.
  • support for GOMP dependent task Feature is missing in the original libomp.

Quick start

Please read the quick configuration and installation guide here.

The authors

Thierry Gautier, INRIA Philippe Virouleau, INRIA

Acknowledgment

This project is partially funded by the french PIA ELCI project.