[Openmp-commits] [PATCH] D26356: Dynamic affinity dispatch capabilities.

Jonathan Peyton via Openmp-commits openmp-commits at lists.llvm.org
Mon Nov 7 10:44:39 PST 2016


jlpeyton created this revision.
jlpeyton added reviewers: AndreyChurbanov, tlwilmar.
jlpeyton added a subscriber: openmp-commits.
jlpeyton set the repository for this revision to rL LLVM.
Herald added subscribers: modocache, mgorny.

This set of changes enables the affinity interface (Either the preexisting native operating system or HWLOC) to be dynamically set at runtime initialization.  The point of this change is that we were seeing performance degradations when using HWLOC.  This allows the user to use the old affinity mechanisms which on large machines (>64 cores) makes a large difference in initialization time.

These changes mostly move affinity code under a small class hierarchy:

  KMPAffinity {
    class Mask {}
  };
  KMPNativeAffinity : public KMPAffinity {
    class Mask : public KMPAffinity::Mask {}
  };
  KMPHwlocAffinity {
    class Mask : public KMPAffinity::Mask {}
  }

Since all interface functions (for both affinity and the mask implementation) are virtual, the implementation can be chosen at runtime initialization.


Repository:
  rL LLVM

https://reviews.llvm.org/D26356

Files:
  runtime/cmake/LibompHandleFlags.cmake
  runtime/cmake/config-ix.cmake
  runtime/src/kmp.h
  runtime/src/kmp_affinity.cpp
  runtime/src/kmp_affinity.h
  runtime/src/kmp_ftn_cdecl.c
  runtime/src/kmp_ftn_entry.h
  runtime/src/kmp_ftn_extra.c
  runtime/src/kmp_global.c
  runtime/src/kmp_runtime.c
  runtime/src/kmp_settings.c
  runtime/src/z_Linux_util.c
  runtime/src/z_Windows_NT_util.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26356.77057.patch
Type: text/x-patch
Size: 66345 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20161107/8c306935/attachment-0001.bin>


More information about the Openmp-commits mailing list