17 #ifndef KOKKOS_IMPL_PUBLIC_INCLUDE
18 #include <Kokkos_Macros.hpp>
20 "Including non-public Kokkos header files is not allowed.");
22 #ifndef KOKKOS_HWLOC_HPP
23 #define KOKKOS_HWLOC_HPP
25 #include <Kokkos_Macros.hpp>
83 unsigned thread_mapping(
const char*
const label,
const bool allow_async,
84 unsigned& thread_count,
unsigned& use_numa_count,
85 unsigned& use_cores_per_numa,
86 std::pair<unsigned, unsigned> threads_coord[]);
110 std::pair<unsigned, unsigned> coordinate[]);
bool bind_this_thread(const std::pair< unsigned, unsigned >)
Bind the current thread to a core.
bool can_bind_threads()
Can hwloc bind threads?
unsigned get_available_cores_per_numa()
Query number of available cores per NUMA regions. This will be less than the hardware capacity if the...
unsigned get_available_threads_per_core()
Query number of available "hard" threads per core; i.e., hyperthreads.
unsigned get_available_numa_count()
Query number of available NUMA regions. This will be less than the hardware capacity if the MPI proce...
std::pair< unsigned, unsigned > get_this_thread_coordinate()
Query core-coordinate of the current thread with respect to the core_topology.
bool unbind_this_thread()
Unbind the current thread back to the original process binding.
unsigned thread_mapping(const char *const label, const bool allow_async, unsigned &thread_count, unsigned &use_numa_count, unsigned &use_cores_per_numa, std::pair< unsigned, unsigned > threads_coord[])
Recommend mapping of threads onto cores.
bool available()
Query if hwloc is available.