-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Allow specification of ES modules in ExternalGeneratorFilter #34146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow specification of ES modules in ExternalGeneratorFilter #34146
Conversation
The parameter _external_process_esModules_ allows one to specify the names of ES modules which should be copied from the main process and started in the external process.
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-34146/23342
|
|
A new Pull Request was created by @Dr15Jones (Chris Jones) for master. It involves the following packages: GeneratorInterface/Core @SiewYan, @mkirsano, @cmsbuild, @GurpreetSinghChahal, @agrohsje, @alberto-sanchez can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
|
please test |
| class ExternalGeneratorFilter(cms.EDFilter): | ||
| def __init__(self, prod, _external_process_waitTime_ = cms.untracked.uint32(60), _external_process_verbose_ = cms.untracked.bool(False)): | ||
| def __init__(self, prod, _external_process_waitTime_ = cms.untracked.uint32(60), _external_process_verbose_ = cms.untracked.bool(False), | ||
| _external_process_esModules_ = cms.vstring()): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NOTE: although I called this _external_process_esModules_, technically the module names of any type of plugin could be passed and it would work. It only really makes sense for ES modules (and maybe Services for testing). If you'd rather, this could be changed to _external_process_components_ or something else to capture what is technically possible rather than what I think is most reasonable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the proposal components as it might avoid confusion.
| newpset.addString(False,"@python_config", self._prod.dumpPython()) | ||
| newpset.addBool(False,"_external_process_verbose_", self._external_process_verbose_.value()) | ||
| newpset.addUInt32(False,"_external_process_waitTime_", self._external_process_waitTime_.value()) | ||
| newpset.addVString(True, "_external_process_esModules_", self._external_process_esModules_.value()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new parameter is tracked since the ES modules loaded affect the physics.
|
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-159cca/15979/summary.html The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:
You can see more details here: Comparison SummarySummary:
|
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-34146/23374
|
|
Pull request #34146 was updated. @SiewYan, @mkirsano, @cmsbuild, @GurpreetSinghChahal, @agrohsje, @alberto-sanchez can you please check and sign again. |
|
Hi, from the GEN side, ExternalGeneratorFilter module has been tested on all possible GeneratorFilter-based modules. They all run well and physics results are consistent by now (see link, few are still running, results to be updated). Here's the summary table: (update: all validations have completed)
|
|
I would suggest a small modification on running the external commands. Some generators will release intermediate files to local dir (e.g. H7, Sherpa) so it would be better to put them in different directories to avoid overlapping. Here is the patch I temporarily added to run the above validation: https://gist.github.com/colizz/76d7e1a4720db5cfc457ee027964c23a @Dr15Jones If it is fine, would you also help to commit the change to this PR? |
I’m in vacation now. Please go ahead and make another pull request. |
|
please test |
|
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-159cca/16081/summary.html Comparison SummarySummary:
|
|
Ok thanks, I make another PR #34173 to fix the working directory issue. From the GEN side, the comprehensive validation on ExternalGeneratorFilter also completes. We see good agreement w/ or w/o using the ExternalGeneratorFilter as a wrapper. Please see full results in [link]. |
|
+generators |
|
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @silviodonato, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2) |
|
+1 |
PR description:
The parameter external_process_esModules allows one to specify the names of ES modules which should be copied from the main process and started in the external process.
PR validation:
I locally copied the test config compare_external_generators_cfg.py and added the Tracer service via the parameter. The tracing showed up in the output from the external processes.
resolves cms-sw/framework-team#168