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
Concurrent Path Processing #15882
Concurrent Path Processing #15882
Conversation
A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_8_1_DEVEL_X. It involves the following packages: DataFormats/Provenance @cmsbuild, @smuzaffar, @Dr15Jones can you please review it and eventually sign? Thanks. cms-bot commands are list here #13028 |
please test |
The tests are being triggered in jenkins. |
@smuzaffar the tests actually aborted by CMS-bot didn't seem to notice |
@Dr15Jones , tests were aborted after 15 hours. Though I have restarted the tests but I am afraid it will again abort as I see workflows are hanging. I see runTheMatrix timeout after 3 hours. |
Hanging is a possibility with this code change. Guess I'll have to re-compile the world myself since I don't want DEVEL that broken :). |
b06560c
to
b61ff0f
Compare
Pull request #15882 was updated. @cmsbuild, @smuzaffar, @Dr15Jones, @vanbesien, @dmitrijus can you please check and sign again. |
I brought in more of the changes from #15740 |
please test |
Pull request #15882 was updated. @perrotta, @smuzaffar, @Dr15Jones, @silviodonato, @dmitrijus, @Martin-Grunewald, @cmsbuild, @fwyzard, @vanbesien can you please check and sign again. |
@smuzaffar this fixes a case where the framework would get stuck during RelVal processing. I don't know if this is the last of them though. |
please test |
The tests are being triggered in jenkins. |
Within one event, process all Paths and EndPaths simultaneously. This includes handling data dependencies between Paths.
Several tests depend on groups of Paths running sequentially. Those were modified to add modules where the data dependencies between modules would force the ordering. Another test was comparing the output of Tracer which changes because of the concurrent processing order.
When the Path ends early, all modules after the failing filter are supposed to be notified. However, the code notified all modules after the filter and the filter itself. If the filter added data to the Event then when told to skip it would try to add the data again which would cause an exception.
The FastTimerService does not presently handle the case where one Stream can use more than one thread, either for modules or paths. The agreed upon solution for now is to disable it.
Since unscheduled EDProducers can now depend on scheduled modules the we can now remove all EDProducers from a Path. In addition, if an EDFilter is marked as cms.ignore, it can also be removed from a Path. To help add cms.ignore to EDFilters on a Path, we now have the function ignoreAllFiltersOnPath.
22de4c5
to
c3f600a
Compare
Pull request #15882 was updated. @perrotta, @smuzaffar, @cmsbuild, @silviodonato, @Martin-Grunewald, @Dr15Jones, @fwyzard can you please check and sign again. |
@smuzaffar I rebased on top of CMSSW_8_1_X but it didn't complain about any conflicts. Weird. Assuming the rebase did avoid the merge problems I think we are at the point where we should just put this into CMSSW_8_1_DEVEL_X. If it breaks it, we just back it out. |
+1 |
The tests are being triggered in jenkins. |
Ok, I am merging it for next IB. |
Comparison not run due to Build errors (RelVals and Igprof tests were also skipped) |
-1 Tested at: c3f600a The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic: You can see the results of the tests here: I found follow errors while testing this PR Failed tests: Build
I found an error when building: >> Compiling edm plugin /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_8_1_DEVEL_X_2016-09-20-2300/src/IOMC/ParticleGuns/src/FlatEGunASCIIWriter.cc >> Compiling edm plugin /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_8_1_DEVEL_X_2016-09-20-2300/src/IOMC/ParticleGuns/src/FlatRandomPtGunProducer.cc >> Compiling edm plugin /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_8_1_DEVEL_X_2016-09-20-2300/src/IOMC/ParticleGuns/src/ExpoRandomPGunProducer.cc >> Compiling edm plugin /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_8_1_DEVEL_X_2016-09-20-2300/src/IOMC/ParticleGuns/src/FlatRandomPtThetaGunProducer.cc /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_8_1_DEVEL_X_2016-09-20-2300/src/IOMC/ParticleGuns/src/BaseRandomtXiGunProducer.cc: In member function 'virtual void edm::BaseRandomtXiGunProducer::endRunProduce(edm::Run&, const edm::EventSetup&)': /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_8_1_DEVEL_X_2016-09-20-2300/src/IOMC/ParticleGuns/src/BaseRandomtXiGunProducer.cc:87:24: error: no matching function for call to 'edm::Run::put(std::auto_ptr&)' run.put( genRunInfo ); ^ In file included from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_8_1_DEVEL_X_2016-09-20-2300/src/IOMC/ParticleGuns/src/BaseRandomtXiGunProducer.cc:12:0: /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_8_1_DEVEL_X_2016-09-20-2300/src/FWCore/Framework/interface/Run.h:111:5: note: candidate: template void edm::Run::put(std::unique_ptr<_Tp>) put(std::unique_ptr product) {put(std::move(product), std::string());} The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic: |
Allow Paths and EndPaths to run concurrently within one Event.
This change properly handles dependencies between modules on different paths (a module on one path will wait until a module on another path has finished). In addition unscheduled modules can now safely depend on scheduled modules.