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 #include <iostream>
00004 
00005 Teuchos::RCP<Kokkos::DefaultNode::DefaultNodeType> Kokkos::DefaultNode::node_ = Teuchos::null;
00006 
00007 namespace Kokkos {
00008 
00009   RCP<DefaultNode::DefaultNodeType> DefaultNode::getDefaultNode() 
00010   {
00011     if (node_ == null) {
00012       Teuchos::ParameterList pl;
00013 #ifdef HAVE_KOKKOS_THREADPOOL
00014       pl.set<int>("Num Threads",1);
00015       node_ = rcp<TPINode>(new TPINode(pl));
00016 #else
00017 #  ifdef HAVE_KOKKOS_TBB
00018       pl.set<int>("Num Threads",0);
00019       node_ = rcp<TBBNode>(new TBBNode(pl));
00020 #  else
00021       node_ = rcp<SerialNode>(new SerialNode(pl));
00022 #  endif
00023 #endif
00024     }
00025     return node_;
00026   }
00027 
00028 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends