Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos_DefaultNode.cpp
00001 #include "Kokkos_DefaultNode.hpp"
00002 #include <Teuchos_ParameterList.hpp>
00003 
00004 Teuchos::RCP<Kokkos::DefaultNode::DefaultNodeType> Kokkos::DefaultNode::node_ = Teuchos::null;
00005 
00006 namespace Kokkos {
00007 
00008   Teuchos::RCP<DefaultNode::DefaultNodeType> DefaultNode::getDefaultNode() {
00009     if (node_ == Teuchos::null) {
00010       Teuchos::ParameterList pl;
00011 #ifdef HAVE_KOKKOS_THREADPOOL
00012       pl.set<int>("Num Threads",1);
00013       node_ = Teuchos::rcp<TPINode>(new TPINode(pl));
00014 #else
00015 #  ifdef HAVE_KOKKOS_TBB
00016       pl.set<int>("Num Threads",0);
00017       node_ = Teuchos::rcp<TBBNode>(new TBBNode(pl));
00018 #  else
00019       node_ = Teuchos::rcp<SerialNode>(new SerialNode(pl));
00020 #  endif
00021 #endif
00022     }
00023     return node_;
00024   }
00025 
00026 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends