44 #ifndef KOKKOS_OPENMP_HPP 45 #define KOKKOS_OPENMP_HPP 47 #include <Kokkos_Core_fwd.hpp> 49 #if defined( KOKKOS_HAVE_OPENMP ) && defined( _OPENMP ) 55 #include <Kokkos_HostSpace.hpp> 56 #ifdef KOKKOS_HAVE_HBWSPACE 57 #include <Kokkos_HBWSpace.hpp> 59 #include <Kokkos_ScratchSpace.hpp> 62 #include <impl/Kokkos_Tags.hpp> 77 typedef OpenMP execution_space ;
78 #ifdef KOKKOS_HAVE_HBWSPACE 79 typedef Experimental::HBWSpace memory_space ;
81 typedef HostSpace memory_space ;
86 typedef LayoutRight array_layout ;
87 typedef memory_space::size_type size_type ;
89 typedef ScratchMemorySpace< OpenMP > scratch_memory_space ;
96 inline static bool in_parallel() {
return omp_in_parallel(); }
105 static void fence() {}
108 static void print_configuration( std::ostream & ,
const bool detail =
false );
122 static void initialize(
unsigned thread_count = 0 ,
123 unsigned use_numa_count = 0 ,
124 unsigned use_cores_per_numa = 0 );
126 static int is_initialized();
136 inline static int thread_pool_size(
int depth = 0 );
139 KOKKOS_INLINE_FUNCTION
static int thread_pool_rank();
143 inline static unsigned max_hardware_threads() {
return thread_pool_size(0); }
145 KOKKOS_INLINE_FUNCTION
static 146 unsigned hardware_thread_id() {
return thread_pool_rank(); }
158 struct VerifyExecutionCanAccessMemorySpace
159 <
Kokkos::OpenMP::memory_space
160 , Kokkos::OpenMP::scratch_memory_space
163 enum { value =
true };
164 inline static void verify(
void ) { }
165 inline static void verify(
const void * ) { }
174 #include <OpenMP/Kokkos_OpenMPexec.hpp> 175 #include <OpenMP/Kokkos_OpenMP_Parallel.hpp> Memory space for main process and CPU execution spaces.
Declaration of various MemoryLayout options.
Declaration of parallel operators.
void finalize()
Finalize the spaces that were initialized via Kokkos::initialize.