RCP<ParameterList> HybridPlatform::listSupportedNodes() { RCP<ParameterList> list = Teuchos::parameterList(); { ParameterList subpl; subpl.set("NodeType","KokkosClassic::SerialNode"); subpl.setParameters( KokkosClassic::SerialNode::getDefaultParameters() ); list->set("=-1",subpl); } #ifdef HAVE_KOKKOSCLASSIC_TBB { ParameterList subpl; subpl.set("NodeType","KokkosClassic::TBBNode"); subpl.setParameters( KokkosClassic::TBBNode::getDefaultParameters() ); list->set("=-2",subpl); } #endif #ifdef HAVE_KOKKOSCLASSIC_OPENMP { ParameterList subpl; subpl.set("NodeType","KokkosClassic::OpenMPNode"); subpl.setParameters( KokkosClassic::OpenMPNode::getDefaultParameters() ); list->set("=-3",subpl); } #endif #ifdef HAVE_KOKKOSCLASSIC_THREADPOOL { ParameterList subpl; subpl.set("NodeType","KokkosClassic::TPINode"); subpl.setParameters( KokkosClassic::TPINode::getDefaultParameters() ); list->set("=-4",subpl); } #endif #ifdef HAVE_KOKKOSCLASSIC_THRUST { ParameterList subpl; subpl.set("NodeType","KokkosClassic::ThrustGPUNode"); subpl.setParameters( KokkosClassic::ThrustGPUNode::getDefaultParameters() ); list->set("=-5",subpl); } #endif return list; }
TPINode::TPINode(ParameterList &plist) { ParameterList params = getDefaultParameters(); params.setParameters(plist); curNumThreads_ = params.get<int>("Num Threads"); int verbose = params.get<int>("Verbose"); TEUCHOS_TEST_FOR_EXCEPTION( curNumThreads_ < 0, std::runtime_error, "TPINode: The \"Num Threads\" parameter must be a nonnegative integer."); if (verbose) { std::cout << "TPINode initializing with numThreads == " << curNumThreads_ << std::endl; } init (curNumThreads_); }