24 ->setComment(
"If zero, let TBB use its default which is normally the number of CPUs on the machine");
25 description.
addUntracked<
unsigned int>(
"numberOfStreams", 0)
27 "If zero, then set the number of streams to be the same as the number of "
28 "Threads (except always 1 if there is a looper)");
29 description.
addUntracked<
unsigned int>(
"numberOfConcurrentLuminosityBlocks", 0)
31 "If zero, use Framework default (currently 2 when the number of streams >= 2, otherwise 1). "
32 "In all cases, the number of concurrent luminosity blocks will be reset to "
33 "be the same as the number of streams if it is greater than the "
34 "numbers of streams.");
35 description.
addUntracked<
unsigned int>(
"numberOfConcurrentRuns", 1);
38 eventSetupDescription.
addUntracked<
unsigned int>(
"numberOfConcurrentIOVs", 0)
40 "If zero, use the Framework default which currently means the same as the "
41 "number of concurrent luminosity blocks. Can be overridden by a hard coded "
42 "static in a record C++ definition or by forceNumberOfConcurrentIOVs. "
43 "In all cases, the number of concurrent IOVs will be reset to be the "
44 "same as the number of concurrent luminosity blocks if greater than the "
45 "number of concurrent luminosity blocks.");
48 "Parameter names should be record names and the values are the number of concurrent IOVS for each record."
49 " Overrides all other methods of setting number of concurrent IOVs.");
53 description.
addUntracked<std::vector<std::string>>(
"accelerators", {
"*"})
55 "Specify the set of compute accelerator(s) the job is allowed to use. The values can contain the direct "
56 "names of accelerators supported by the ProcessAccelerators defined in the configuration, or patterns "
57 "matching to them (patterns use '*' and '?' wildcards similar to shell). The actual set of accelerators to "
58 "be used is determined on the worker node based on the available hardware. A CPU fallback with the name "
59 "'cpu' is always included in the set of available accelerators. If no accelerator matching to the patterns "
60 "are available on the worker node, the job is terminated with a specific error code. Same happens if an "
61 "empty value is given in the configuration. Default value is pattern '*', which implies use of any "
62 "supported and available hardware (including the CPU fallback).");
64 ->setComment(
"Set true to print a report on the trigger decisions and timing of modules");
66 ->setComment(
"Legal values are 'NOMERGE' and 'FULLMERGE'");
67 description.
addUntracked<
bool>(
"forceEventSetupCacheClearOnNewRun",
false);
68 description.
addUntracked<
bool>(
"throwIfIllegalParameter",
true)
69 ->setComment(
"Set false to disable exception throws when configuration validation detects illegal parameters");
70 description.
addUntracked<
bool>(
"printDependencies",
false)->setComment(
"Print data dependencies between modules");
71 description.
addUntracked<
bool>(
"deleteNonConsumedUnscheduledModules",
true)
73 "Delete modules that are unscheduled, i.e. only in Tasks, whose products are not consumed by any other "
74 "otherwise-running module");
81 std::vector<std::string> emptyVector;
83 description.
addUntracked<std::vector<std::string>>(
"Rethrow", emptyVector);
84 description.
addUntracked<std::vector<std::string>>(
"SkipEvent", emptyVector);
85 description.
addUntracked<std::vector<std::string>>(
"FailPath", emptyVector);
86 description.
addUntracked<std::vector<std::string>>(
"IgnoreCompletely", emptyVector);
88 description.
addUntracked<std::vector<std::string>>(
"canDeleteEarly", emptyVector)
89 ->setComment(
"Branch names of products that the Framework can try to delete before the end of the Event");
93 "Print values of selected Framework parameters. The Framework might modify the values "
94 "in the options parameter set and this prints the values after that modification.");
98 "Obsolete. Has no effect. Allowed only for backward compatibility for old Python configuration files.");
101 "Obsolete. Has no effect. Allowed only for backward compatibility for old Python configuration files.");
104 "Obsolete. Has no effect. Allowed only for backward compatibility for old Python configuration files.");
108 description.
addUntracked<
int>(
"input", -1)->setComment(
"Default of -1 implies no limit.");
118 description.
addUntracked<
int>(
"input", -1)->setComment(
"Default of -1 implies no limit.");
122 description.
addUntracked<
int>(
"input", -1)->setComment(
"Default of -1 implies no limit.");
128 std::vector<std::string> psetNames{
"options",
"maxEvents",
"maxLuminosityBlocks",
"maxSecondsUntilRampdown"};
130 for (
auto const& psetName : psetNames) {
131 bool isTracked{
false};
133 if (pset ==
nullptr) {
140 << psetName <<
"\' in process \'" << processName <<
"\' is tracked.\n"
141 <<
"It must be untracked";
145 if (psetName ==
"options") {
147 }
else if (psetName ==
"maxEvents") {
149 }
else if (psetName ==
"maxLuminosityBlocks") {
151 }
else if (psetName ==
"maxSecondsUntilRampdown") {
158 std::ostringstream ost;
159 ost <<
"Validating top level \'" << psetName <<
"\' ParameterSet for process \'" << processName <<
"\'";
167 unsigned int nStreams,
168 unsigned int nConcurrentLumis,
169 unsigned int nConcurrentRuns) {
170 LogAbsolute(
"Options") <<
"Number of Threads = " << nThreads <<
"\nNumber of Streams = " << nStreams
171 <<
"\nNumber of Concurrent Lumis = " << nConcurrentLumis
172 <<
"\nNumber of Concurrent Runs = " << nConcurrentRuns;
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void validate(ParameterSet &pset) const
ParameterWildcardBase * addWildcardUntracked(U const &pattern)
void validateTopLevelParameterSets(ParameterSet *processParameterSet)
void fillOptionsDescription(ParameterSetDescription &description)
void fillMaxEventsDescription(ParameterSetDescription &description)
ParameterDescriptionNode * addOptionalNode(ParameterDescriptionNode const &node, bool writeToCfi)
constexpr unsigned int s_defaultNumberOfThreads
void fillMaxLuminosityBlocksDescription(ParameterSetDescription &description)
void addUntrackedParameter(std::string const &name, T const &value)
T getParameter(std::string const &) const
void addContext(std::string const &context)
void fillMaxSecondsUntilRampdownDescription(ParameterSetDescription &description)
Log< level::System, true > LogAbsolute
ParameterDescriptionBase * addOptionalUntracked(U const &iLabel, T const &value)
void dumpOptionsToLogFile(unsigned int nThreads, unsigned int nStreams, unsigned int nConcurrentLumis, unsigned int nConcurrentRuns)
ParameterSet * getPSetForUpdate(std::string const &name, bool &isTracked)