44 #ifndef KOKKOS_THREADS_HPP 
   45 #define KOKKOS_THREADS_HPP 
   47 #include <Kokkos_Macros.hpp> 
   48 #if defined( KOKKOS_ENABLE_THREADS ) 
   50 #include <Kokkos_Core_fwd.hpp> 
   54 #include <Kokkos_HostSpace.hpp> 
   55 #include <Kokkos_ScratchSpace.hpp> 
   57 #include <Kokkos_MemoryTraits.hpp> 
   58 #include <impl/Kokkos_Tags.hpp> 
   77   typedef Threads                  execution_space ;
 
   82   typedef Kokkos::Device<execution_space,memory_space> device_type;
 
   85   typedef memory_space::size_type  size_type ;
 
   87   typedef ScratchMemorySpace< Threads >  scratch_memory_space ;
 
   97   static int in_parallel();
 
  108   static void impl_static_fence();
 
  110   #ifdef KOKKOS_ENABLE_DEPRECATED_CODE 
  117   static int concurrency();
 
  119 #ifdef KOKKOS_ENABLE_DEPRECATED_CODE 
  126   static void initialize( 
unsigned threads_count = 0 ,
 
  127                           unsigned use_numa_count = 0 ,
 
  128                           unsigned use_cores_per_numa = 0 ,
 
  129                           bool allow_asynchronous_threadpool = 
false );
 
  131   static int is_initialized();
 
  133   static Threads & instance( 
int = 0 );
 
  137   static int thread_pool_size( 
int depth = 0 );
 
  138 #if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) 
  139   static int thread_pool_rank();
 
  141   KOKKOS_INLINE_FUNCTION 
static int thread_pool_rank() { 
return 0 ; }
 
  144   inline static unsigned max_hardware_threads() { 
return thread_pool_size(0); }
 
  145   KOKKOS_INLINE_FUNCTION 
static unsigned hardware_thread_id() { 
return thread_pool_rank(); }
 
  147   static void impl_finalize();
 
  175   static void impl_initialize( 
unsigned threads_count = 0 ,
 
  176                           unsigned use_numa_count = 0 ,
 
  177                           unsigned use_cores_per_numa = 0 ,
 
  178                           bool allow_asynchronous_threadpool = 
false );
 
  180   static int impl_is_initialized();
 
  182   static Threads & impl_instance( 
int = 0 );
 
  186   static int impl_thread_pool_size( 
int depth = 0 );
 
  187 #if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) 
  188   static int impl_thread_pool_rank();
 
  190   KOKKOS_INLINE_FUNCTION 
static int impl_thread_pool_rank() { 
return 0 ; }
 
  193   inline static unsigned impl_max_hardware_threads() { 
return impl_thread_pool_size(0); }
 
  194   KOKKOS_INLINE_FUNCTION 
static unsigned impl_hardware_thread_id() { 
return impl_thread_pool_rank(); }
 
  197   static const char* name();
 
  210 struct MemorySpaceAccess
 
  211   < Kokkos::Threads::memory_space
 
  212   , Kokkos::Threads::scratch_memory_space
 
  215   enum { assignable = 
false };
 
  216   enum { accessible = 
true };
 
  217   enum { deepcopy   = 
false };
 
  221 struct VerifyExecutionCanAccessMemorySpace
 
  222   < Kokkos::Threads::memory_space
 
  223   , Kokkos::Threads::scratch_memory_space
 
  226   enum { value = 
true };
 
  227   inline static void verify( 
void ) { }
 
  228   inline static void verify( 
const void * ) { }
 
  236 #include <Kokkos_ExecPolicy.hpp> 
  238 #include <Threads/Kokkos_ThreadsExec.hpp> 
  239 #include <Threads/Kokkos_ThreadsTeam.hpp> 
  240 #include <Threads/Kokkos_Threads_Parallel.hpp> 
  242 #include <KokkosExp_MDRangePolicy.hpp> 
void print_configuration(std::ostream &, const bool detail=false)
Print "Bill of Materials". 
 
Memory management for host memory. 
 
Memory layout tag indicating right-to-left (C or lexigraphical scheme) striding of multi-indices...
 
Declaration of various MemoryLayout options. 
 
Declaration of parallel operators. 
 
void finalize()
Finalize the spaces that were initialized via Kokkos::initialize.