Skip to content
  • Jonathan Peyton's avatar
    Introduce dynamic affinity dispatch capabilities · 1cdd87ad
    Jonathan Peyton authored
    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.
    
    Differential Revision: https://reviews.llvm.org/D26356
    
    llvm-svn: 286890
    1cdd87ad
Loading