CMS 3D CMS Logo

TritonService.h
Go to the documentation of this file.
1 #ifndef HeterogeneousCore_SonicTriton_TritonService
2 #define HeterogeneousCore_SonicTriton_TritonService
3 
5 
6 #include <vector>
7 #include <unordered_set>
8 #include <unordered_map>
9 #include <string>
10 #include <functional>
11 #include <utility>
12 
13 //forward declarations
14 namespace edm {
15  class ActivityRegistry;
17  class PathsAndConsumesOfModulesBase;
18  class ProcessContext;
19  class ModuleDescription;
20 } // namespace edm
21 
23 public:
24  //classes and defs
25  struct FallbackOpts {
27  : enable(pset.getUntrackedParameter<bool>("enable")),
28  debug(pset.getUntrackedParameter<bool>("debug")),
29  verbose(pset.getUntrackedParameter<bool>("verbose")),
30  useDocker(pset.getUntrackedParameter<bool>("useDocker")),
31  useGPU(pset.getUntrackedParameter<bool>("useGPU")),
32  retries(pset.getUntrackedParameter<int>("retries")),
33  wait(pset.getUntrackedParameter<int>("wait")),
34  instanceName(pset.getUntrackedParameter<std::string>("instanceName")),
35  tempDir(pset.getUntrackedParameter<std::string>("tempDir")) {}
36 
37  bool enable;
38  bool debug;
39  bool verbose;
40  bool useDocker;
41  bool useGPU;
42  int retries;
43  int wait;
46  };
47  struct Server {
49  : url(pset.getUntrackedParameter<std::string>("address") + ":" +
50  std::to_string(pset.getUntrackedParameter<unsigned>("port"))),
51  isFallback(pset.getUntrackedParameter<std::string>("name") == fallbackName) {}
52  Server(const std::string& name_, const std::string& url_) : url(url_), isFallback(name_ == fallbackName) {}
53 
54  //members
56  bool isFallback;
57  std::unordered_set<std::string> models;
58  static const std::string fallbackName;
60  };
61  struct Model {
62  Model(const std::string& path_ = "") : path(path_) {}
63 
64  //members
66  std::unordered_set<std::string> servers;
67  std::unordered_set<unsigned> modules;
68  };
69  struct Module {
70  //currently assumes that a module can only have one associated model
71  Module(const std::string& model_) : model(model_) {}
72 
73  //members
75  };
76 
78  ~TritonService() = default;
79 
80  //accessors
81  void addModel(const std::string& modelName, const std::string& path);
82  std::pair<std::string, bool> serverAddress(const std::string& model, const std::string& preferred = "") const;
83 
84  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
85 
86 private:
91 
92  bool verbose_;
94  unsigned currentModuleId_;
97  std::unordered_map<std::string, Model> unservedModels_;
98  //this represents a many:many:many map
99  std::unordered_map<std::string, Server> servers_;
100  std::unordered_map<std::string, Model> models_;
101  std::unordered_map<unsigned, Module> modules_;
102 };
103 
104 #endif
TritonService::startedFallback_
bool startedFallback_
Definition: TritonService.h:96
TritonService::Module::model
std::string model
Definition: TritonService.h:74
TritonService::Server
Definition: TritonService.h:47
electrons_cff.bool
bool
Definition: electrons_cff.py:366
TritonService::serverAddress
std::pair< std::string, bool > serverAddress(const std::string &model, const std::string &preferred="") const
Definition: TritonService.cc:161
TritonService::FallbackOpts::verbose
bool verbose
Definition: TritonService.h:39
TritonService::Model
Definition: TritonService.h:61
ActivityRegistry
TritonService::fallbackOpts_
FallbackOpts fallbackOpts_
Definition: TritonService.h:93
TritonService::allowAddModel_
bool allowAddModel_
Definition: TritonService.h:95
TritonService::Model::servers
std::unordered_set< std::string > servers
Definition: TritonService.h:66
TritonService::Model::modules
std::unordered_set< unsigned > modules
Definition: TritonService.h:67
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ProcessContext
Definition: ProcessContext.h:27
TritonService::Server::fallbackAddress
static const std::string fallbackAddress
Definition: TritonService.h:59
TritonService::models_
std::unordered_map< std::string, Model > models_
Definition: TritonService.h:100
TritonService::currentModuleId_
unsigned currentModuleId_
Definition: TritonService.h:94
TritonService::modules_
std::unordered_map< unsigned, Module > modules_
Definition: TritonService.h:101
TritonService::preModuleDestruction
void preModuleDestruction(edm::ModuleDescription const &)
Definition: TritonService.cc:140
TritonService::FallbackOpts::debug
bool debug
Definition: TritonService.h:38
TritonService::Module::Module
Module(const std::string &model_)
Definition: TritonService.h:71
ReggeGribovPartonMC_EposLHC_2760GeV_PbPb_cfi.model
model
Definition: ReggeGribovPartonMC_EposLHC_2760GeV_PbPb_cfi.py:11
edm::ModuleDescription
Definition: ModuleDescription.h:21
TritonService::preModuleConstruction
void preModuleConstruction(edm::ModuleDescription const &)
Definition: TritonService.cc:119
HLTEgPhaseIITestSequence_cff.modelName
modelName
Definition: HLTEgPhaseIITestSequence_cff.py:16
TritonService::unservedModels_
std::unordered_map< std::string, Model > unservedModels_
Definition: TritonService.h:97
TritonService::Server::fallbackName
static const std::string fallbackName
Definition: TritonService.h:58
TritonService::Model::Model
Model(const std::string &path_="")
Definition: TritonService.h:62
edm::ActivityRegistry
Definition: ActivityRegistry.h:134
TritonService::Server::url
std::string url
Definition: TritonService.h:55
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TritonService::Server::models
std::unordered_set< std::string > models
Definition: TritonService.h:57
TritonService::Server::Server
Server(const std::string &name_, const std::string &url_)
Definition: TritonService.h:52
edm::ParameterSet
Definition: ParameterSet.h:47
TritonService::addModel
void addModel(const std::string &modelName, const std::string &path)
Definition: TritonService.cc:124
TritonService::preBeginJob
void preBeginJob(edm::PathsAndConsumesOfModulesBase const &, edm::ProcessContext const &)
Definition: TritonService.cc:185
TritonService::FallbackOpts::instanceName
std::string instanceName
Definition: TritonService.h:44
createfilelist.int
int
Definition: createfilelist.py:10
TritonService::FallbackOpts::FallbackOpts
FallbackOpts(const edm::ParameterSet &pset)
Definition: TritonService.h:26
TritonService::Server::isFallback
bool isFallback
Definition: TritonService.h:56
TritonService::Module
Definition: TritonService.h:69
TritonService::TritonService
TritonService(const edm::ParameterSet &pset, edm::ActivityRegistry &areg)
Definition: TritonService.cc:56
TritonService::FallbackOpts::wait
int wait
Definition: TritonService.h:43
TritonService::FallbackOpts::useGPU
bool useGPU
Definition: TritonService.h:41
TritonService::Model::path
std::string path
Definition: TritonService.h:65
TritonService::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: TritonService.cc:269
std
Definition: JetResolutionObject.h:76
ConfigurationDescriptions
edm::PathsAndConsumesOfModulesBase
Definition: PathsAndConsumesOfModulesBase.h:35
TritonService::Server::Server
Server(const edm::ParameterSet &pset)
Definition: TritonService.h:48
TritonService::FallbackOpts
Definition: TritonService.h:25
TritonService::postModuleConstruction
void postModuleConstruction(edm::ModuleDescription const &)
Definition: TritonService.cc:138
TritonService::FallbackOpts::useDocker
bool useDocker
Definition: TritonService.h:40
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
TritonService::FallbackOpts::enable
bool enable
Definition: TritonService.h:37
ParameterSet.h
path_
std::string & path_
Definition: PluginManager.cc:221
TritonService::FallbackOpts::tempDir
std::string tempDir
Definition: TritonService.h:45
TritonService::~TritonService
~TritonService()=default
TritonService::FallbackOpts::retries
int retries
Definition: TritonService.h:42
TritonService
Definition: TritonService.h:22
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
TritonService::verbose_
bool verbose_
Definition: TritonService.h:92
TritonService::servers_
std::unordered_map< std::string, Server > servers_
Definition: TritonService.h:99