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> 61 #include <Kokkos_TaskScheduler.hpp> 63 #include <impl/Kokkos_Tags.hpp> 65 #include <KokkosExp_MDRangePolicy.hpp> 79 typedef OpenMP execution_space ;
80 #ifdef KOKKOS_HAVE_HBWSPACE 81 typedef Experimental::HBWSpace memory_space ;
83 typedef HostSpace memory_space ;
88 typedef LayoutRight array_layout ;
89 typedef memory_space::size_type size_type ;
91 typedef ScratchMemorySpace< OpenMP > scratch_memory_space ;
98 inline static bool in_parallel() {
return omp_in_parallel(); }
107 static void fence() {}
110 static void print_configuration( std::ostream & ,
const bool detail =
false );
124 static void initialize(
unsigned thread_count = 0 ,
125 unsigned use_numa_count = 0 ,
126 unsigned use_cores_per_numa = 0 );
128 static int is_initialized();
131 static int concurrency();
142 inline static int thread_pool_size(
int depth = 0 );
145 KOKKOS_INLINE_FUNCTION
static int thread_pool_rank();
149 inline static unsigned max_hardware_threads() {
return thread_pool_size(0); }
151 KOKKOS_INLINE_FUNCTION
static 152 unsigned hardware_thread_id() {
return thread_pool_rank(); }
164 struct VerifyExecutionCanAccessMemorySpace
165 <
Kokkos::OpenMP::memory_space
166 , Kokkos::OpenMP::scratch_memory_space
169 enum { value =
true };
170 inline static void verify(
void ) { }
171 inline static void verify(
const void * ) { }
180 #include <OpenMP/Kokkos_OpenMPexec.hpp> 181 #include <OpenMP/Kokkos_OpenMP_Parallel.hpp> 182 #include <OpenMP/Kokkos_OpenMP_Task.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.