Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos_DefaultNode.hpp
00001 #ifndef KOKKOS_DEFAULT_NODE_HPP_
00002 #define KOKKOS_DEFAULT_NODE_HPP_
00003 
00004 #include "Kokkos_ConfigDefs.hpp"
00005 #include "Kokkos_SerialNode.hpp"
00006 #ifdef HAVE_KOKKOS_TBB
00007 #include "Kokkos_TBBNode.hpp"
00008 #endif
00009 #ifdef HAVE_KOKKOS_THREADPOOL
00010 #include "Kokkos_TPINode.hpp"
00011 #endif
00012 
00013 #include <Teuchos_RCP.hpp>
00014 
00015 namespace Kokkos {
00016 
00020   class DefaultNode {
00021     public:
00022 #if defined(HAVE_KOKKOS_THREADPOOL)
00023       typedef TPINode DefaultNodeType;
00024 #elif defined(HAVE_KOKKOS_TBB)
00025       typedef TBBNode DefaultNodeType;
00026 #else
00027 
00028       typedef SerialNode DefaultNodeType;
00029 #endif
00030 
00032       static RCP<DefaultNodeType> getDefaultNode();
00033 
00034     private:
00035       static RCP<DefaultNodeType> node_;
00036   };
00037 
00038 }
00039 
00040 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends