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).");
63 description.addUntracked<
bool>(
"wantSummary",
false)
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");
79 description.addOptionalUntracked<
unsigned int>(
"sizeOfStackForThreadsInKB");
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");
91 description.addUntracked<
bool>(
"dumpOptions",
false)
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.");
96 description.addOptionalUntracked<
bool>(
"allowUnscheduled")
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.");
102 description.addOptionalUntracked<
bool>(
"makeTriggerResults")
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) {
141 <<
"It must be untracked";
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;
T getParameter(std::string const &) const
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
ParameterWildcardBase * addWildcardUntracked(U const &pattern)
void validateTopLevelParameterSets(ParameterSet *processParameterSet)
void fillOptionsDescription(ParameterSetDescription &description)
void fillMaxEventsDescription(ParameterSetDescription &description)
constexpr unsigned int s_defaultNumberOfThreads
void fillMaxLuminosityBlocksDescription(ParameterSetDescription &description)
void addUntrackedParameter(std::string const &name, T const &value)
void addContext(std::string const &context)
void fillMaxSecondsUntilRampdownDescription(ParameterSetDescription &description)
Log< level::System, true > LogAbsolute
void dumpOptionsToLogFile(unsigned int nThreads, unsigned int nStreams, unsigned int nConcurrentLumis, unsigned int nConcurrentRuns)
ParameterSet * getPSetForUpdate(std::string const &name, bool &isTracked)