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 #ifdef HAVE_KOKKOS_THREADPOOL
00023       typedef TPINode DefaultNodeType;
00024 #else
00025 #ifdef HAVE_KOKKOS_TBB
00026       typedef TBBNode DefaultNodeType;
00027 #else
00028 
00029       typedef SerialNode DefaultNodeType;
00030 #endif
00031 #endif
00032 
00034       static RCP<DefaultNodeType> getDefaultNode();
00035 
00036     private:
00037       static RCP<DefaultNodeType> node_;
00038   };
00039 
00040 }
00041 
00042 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends