-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
DQM: new DQMStore. #28622
DQM: new DQMStore. #28622
Commits on Feb 3, 2020
-
WIP: import the new DQMStore header.
And implementation stubs as well. Needs lots of adaptions.
Configuration menu - View commit details
-
Copy full SHA for 7953ff4 - Browse repository at this point
Copy the full SHA 7953ff4View commit details -
Some more fixes to make DQM/ compile.
DQMGlobalEDAnalyzer might need an import from the new DQMStore branch.
Configuration menu - View commit details
-
Copy full SHA for c7eb529 - Browse repository at this point
Copy the full SHA c7eb529View commit details -
Configuration menu - View commit details
-
Copy full SHA for 63ab033 - Browse repository at this point
Copy the full SHA 63ab033View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4697c3a - Browse repository at this point
Copy the full SHA 4697c3aView commit details -
Remove enableMultiThread and other unsupported stuff
... from the IO modules. Getting the semantics right will be future work.
Configuration menu - View commit details
-
Copy full SHA for 5665422 - Browse repository at this point
Copy the full SHA 5665422View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4549174 - Browse repository at this point
Copy the full SHA 4549174View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8a601d5 - Browse repository at this point
Copy the full SHA 8a601d5View commit details -
Configuration menu - View commit details
-
Copy full SHA for d318e19 - Browse repository at this point
Copy the full SHA d318e19View commit details -
Mostly to get QReports into MEData. More random changes to make things compile. DQMStore.h is now un-templated, since we don't need the templated declarations for now.
Configuration menu - View commit details
-
Copy full SHA for 2b71978 - Browse repository at this point
Copy the full SHA 2b71978View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7cc564c - Browse repository at this point
Copy the full SHA 7cc564cView commit details -
Allow passing a lambda to book*() calls.
This should only be called when a new object is needed, and can freely modify the ROOT object.
Configuration menu - View commit details
-
Copy full SHA for 7d0603e - Browse repository at this point
Copy the full SHA 7d0603eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7804282 - Browse repository at this point
Copy the full SHA 7804282View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5e1010c - Browse repository at this point
Copy the full SHA 5e1010cView commit details -
Including the heterogeneous queries into the DQMStore sets.
Configuration menu - View commit details
-
Copy full SHA for 26b29f6 - Browse repository at this point
Copy the full SHA 26b29f6View commit details -
Implement enterLumi/leaveLumi.
This is the hard part -- at least half of it. This logic creates clones if and only if they are required. The other half is the cleanup code to run after saving, that needs to delete all clones but a prototype after saving. Not entirely sure yet what to do with harvesting -- we will have global and local MEs as well, but I am not sure yet if we should separate them by module ID. get*() will probably just return global MEs.
Configuration menu - View commit details
-
Copy full SHA for 079f18d - Browse repository at this point
Copy the full SHA 079f18dView commit details -
Changes to make everything compile.
This includes adding a restriction to the tempalte callback argument for the booking calls to prevent ambiguities.
Configuration menu - View commit details
-
Copy full SHA for ba2289b - Browse repository at this point
Copy the full SHA ba2289bView commit details -
Updates and fixes around DQMNet::CoreObject.
plus some bugfixes in other places. syncCoreObject is pretty inefficient, and in general I replaced many complicated, efficient things with slow, safe, value-based code. The hope is that the compiler will optimize away some of the values and that this code does not run much anyways. Later improvements are possible.
Configuration menu - View commit details
-
Copy full SHA for b443f53 - Browse repository at this point
Copy the full SHA b443f53View commit details -
Configuration menu - View commit details
-
Copy full SHA for 08c05be - Browse repository at this point
Copy the full SHA 08c05beView commit details -
Remove the dirname* optimization from DQMNet.
Since we can have MEs whithout data attached, we need to keep a copy of the name somewhere: Either by using a map or inside the ME. Since DQMNet::CoreObject already has the name, we also use it to store the path. Doing that with this optimization would be possible, but complicated, so I just removed it with the minimum amount of changes.
Configuration menu - View commit details
-
Copy full SHA for 7f6fe76 - Browse repository at this point
Copy the full SHA 7f6fe76View commit details -
Incluing adding an API to MonitorElement to check if there actually if there actually is data inside it.
Configuration menu - View commit details
-
Copy full SHA for 89f3874 - Browse repository at this point
Copy the full SHA 89f3874View commit details -
Implement transition watching and cleanup.
This completes the ME life cycle.
Configuration menu - View commit details
-
Copy full SHA for 661699e - Browse repository at this point
Copy the full SHA 661699eView commit details -
Import DQMRootSource from @andrius-k.
Using commit 70fc23c on his "new DQMstore" branch. This might revert changes from cms-sw#28064, needs to be fixed later.
Configuration menu - View commit details
-
Copy full SHA for 48dce79 - Browse repository at this point
Copy the full SHA 48dce79View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3ecb65 - Browse repository at this point
Copy the full SHA f3ecb65View commit details -
Configuration menu - View commit details
-
Copy full SHA for 155fc2a - Browse repository at this point
Copy the full SHA 155fc2aView commit details -
Configuration menu - View commit details
-
Copy full SHA for bebd00c - Browse repository at this point
Copy the full SHA bebd00cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3fc7e5c - Browse repository at this point
Copy the full SHA 3fc7e5cView commit details -
... to make things acceptably fast. The make_tuple in MEComparison is another hotspot, not fixed here.
Configuration menu - View commit details
-
Copy full SHA for 01bd412 - Browse repository at this point
Copy the full SHA 01bd412View commit details -
Configuration menu - View commit details
-
Copy full SHA for d7d8bba - Browse repository at this point
Copy the full SHA d7d8bbaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 03f46f4 - Browse repository at this point
Copy the full SHA 03f46f4View commit details -
Fix a few bugs to get DQMIO round trip to work.
Including reScope for harvesting!
Configuration menu - View commit details
-
Copy full SHA for d0231af - Browse repository at this point
Copy the full SHA d0231afView commit details -
Some random changes to survive 136.85 step3.
The main thing is to make sure that only Scope::RUN histograms are used in dqmEndRun. The changes here are more than required, but still not complete. In the longer term, we may want to restrict dqmEndRun to DQMOneEDAnalyzer and completely ban endJob in DQM*EDAnalyzer. The manual setScope would not be required then, since DQMOneEDAnalyzer would use RUN scope by default. Alternatively, we *could* support endRun in edm::stream, running it only on a single stream, but that is unnecessarily complicated.
Configuration menu - View commit details
-
Copy full SHA for 1a4063d - Browse repository at this point
Copy the full SHA 1a4063dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 11c3be5 - Browse repository at this point
Copy the full SHA 11c3be5View commit details -
Call enterLumi also before booking.
This is needed if there are multiple runs, and we book multiple times, to make sure the old histograms are already prepared in booking.
Configuration menu - View commit details
-
Copy full SHA for 1ed3afd - Browse repository at this point
Copy the full SHA 1ed3afdView commit details -
Some fixes to make more DQMIO tests pass.
Involves bugfixes in DQMStore as well as the DQMRootSource. The current cleanup logic is pretty much dommed to fail, and it is not really possible to get DummyReadDQMStore (relying on legacy emulation behavior) to work now. We could fix DummyReadDQMStore to not rely on the legacy-keep-all-pointers-avlive behavior, but actually we should keep supporting that for whatever else needs it.
Configuration menu - View commit details
-
Copy full SHA for 906e8c1 - Browse repository at this point
Copy the full SHA 906e8c1View commit details -
Make DummyReadDQMStore re-get its MEs.
This is the recommended way to do it, and works even if we allocate to many copies.
Configuration menu - View commit details
-
Copy full SHA for 2be8eef - Browse repository at this point
Copy the full SHA 2be8eefView commit details -
Fix DQMRootSource to properly recycle MEs.
Since the MEs read in the input source don't have local MEs with them, the enterLumi logic for recycling does not apply. But we need to recycle them, to hold up the guarantees for legacy modules.
Configuration menu - View commit details
-
Copy full SHA for f9ea7f3 - Browse repository at this point
Copy the full SHA f9ea7f3View commit details -
Update test to expect merging jobs in any case.
I don't see how the old behavior was ever useful. Also filterOnRun is unused apart from tests, it should be removed. The tests should rather test lumisToProcess, which is used in production.
Configuration menu - View commit details
-
Copy full SHA for 214a997 - Browse repository at this point
Copy the full SHA 214a997View commit details -
The main change is to make DummyReadDQMStore less stupid so it does not rely on the sequential ordering of things. There is a semantic change in read_merged_file1_file3_file4_cfg.py, which expected run to be not merged, while the new code merges whatever makes sense.
Configuration menu - View commit details
-
Copy full SHA for e49ba51 - Browse repository at this point
Copy the full SHA e49ba51View commit details -
Remove dqmEndRun from DQMEDAnalyzer.
This includes lots of automated changes to remove "empty" dqmBeginRun and dqmEndRun. dqmBeginRun remains allowed in DQMEDAnalyzer; it is called before booking and ME cannot (and must not) be accessed there. Any local member intialization should be fine to do there; it will be called for each of the edm::stream instancs once we switch back to stream. Technically all the code could simply be moved into bookHistograms, but having a separate beginRun makes more sense logically. Many dqmEndRun that only contain log messages and printouts where removed, even if they were more than basic debugging output. The remaining modules with non-trivial dqmEndRuns are converted to DQMOneEDAnalyzer. Commands like sed -i '/dqmBeginRun/,+3d' $(ag \ 'dqm(Begin|End)Run[^\n]*\n[^\n]*LogInfo[^\n]*\n\s*}' -l) were used to delete "useless" bodies.
Configuration menu - View commit details
-
Copy full SHA for 9efa806 - Browse repository at this point
Copy the full SHA 9efa806View commit details -
Migrate some modules away from setLumiFlag.
We shuold eventually remove it entirely, but there are a few weird corner cases to think about.
Configuration menu - View commit details
-
Copy full SHA for 46954bc - Browse repository at this point
Copy the full SHA 46954bcView commit details -
Implement some more harvesting APIs.
Very inefficiently, but these things should be deprecated.
Configuration menu - View commit details
-
Copy full SHA for 9b649f4 - Browse repository at this point
Copy the full SHA 9b649f4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 21d37fb - Browse repository at this point
Copy the full SHA 21d37fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 08bcb21 - Browse repository at this point
Copy the full SHA 08bcb21View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3946157 - Browse repository at this point
Copy the full SHA 3946157View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5bc238 - Browse repository at this point
Copy the full SHA a5bc238View commit details -
Configuration menu - View commit details
-
Copy full SHA for 50e631b - Browse repository at this point
Copy the full SHA 50e631bView commit details -
Correctly use virtual on NavigatorBase.
Else the cwd in IGetter and IBooker can get out of sync, since the DQMStore overrides are not always used.
Configuration menu - View commit details
-
Copy full SHA for c3703d0 - Browse repository at this point
Copy the full SHA c3703d0View commit details -
Configuration menu - View commit details
-
Copy full SHA for ec3d8a7 - Browse repository at this point
Copy the full SHA ec3d8a7View commit details -
Configuration menu - View commit details
-
Copy full SHA for de25b35 - Browse repository at this point
Copy the full SHA de25b35View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4db3aeb - Browse repository at this point
Copy the full SHA 4db3aebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4dfdbd1 - Browse repository at this point
Copy the full SHA 4dfdbd1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 90209da - Browse repository at this point
Copy the full SHA 90209daView commit details -
Configuration menu - View commit details
-
Copy full SHA for fbf012d - Browse repository at this point
Copy the full SHA fbf012dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f7f7e68 - Browse repository at this point
Copy the full SHA f7f7e68View commit details -
Configuration menu - View commit details
-
Copy full SHA for d48242a - Browse repository at this point
Copy the full SHA d48242aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 93db601 - Browse repository at this point
Copy the full SHA 93db601View commit details -
Configuration menu - View commit details
-
Copy full SHA for a25a4e2 - Browse repository at this point
Copy the full SHA a25a4e2View commit details -
Configuration menu - View commit details
-
Copy full SHA for b509c05 - Browse repository at this point
Copy the full SHA b509c05View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8f3bf30 - Browse repository at this point
Copy the full SHA 8f3bf30View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b0c322 - Browse repository at this point
Copy the full SHA 2b0c322View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6319056 - Browse repository at this point
Copy the full SHA 6319056View commit details -
Configuration menu - View commit details
-
Copy full SHA for fae7feb - Browse repository at this point
Copy the full SHA fae7febView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c08d52 - Browse repository at this point
Copy the full SHA 9c08d52View commit details -
Configuration menu - View commit details
-
Copy full SHA for f9a3ec3 - Browse repository at this point
Copy the full SHA f9a3ec3View commit details -
Change default reScope to JOB.
This covers all single- and multi run Harvesting. Easier to make it the default than hunt down all the places where the source is configured. Also worrying that no unit tests fail with this change.
Configuration menu - View commit details
-
Copy full SHA for 640107e - Browse repository at this point
Copy the full SHA 640107eView commit details -
Configuration menu - View commit details
-
Copy full SHA for e413ab2 - Browse repository at this point
Copy the full SHA e413ab2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 98fd31a - Browse repository at this point
Copy the full SHA 98fd31aView commit details -
Configuration menu - View commit details
-
Copy full SHA for cb39039 - Browse repository at this point
Copy the full SHA cb39039View commit details -
Configuration menu - View commit details
-
Copy full SHA for f052a63 - Browse repository at this point
Copy the full SHA f052a63View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3703bbe - Browse repository at this point
Copy the full SHA 3703bbeView commit details -
Change reScope default in another place.
Maybe this fixes the default for harvesting jobs?
Configuration menu - View commit details
-
Copy full SHA for 8d59ad5 - Browse repository at this point
Copy the full SHA 8d59ad5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 48d1109 - Browse repository at this point
Copy the full SHA 48d1109View commit details -
Configuration menu - View commit details
-
Copy full SHA for d198f78 - Browse repository at this point
Copy the full SHA d198f78View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a2d5fb - Browse repository at this point
Copy the full SHA 0a2d5fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 274b1fa - Browse repository at this point
Copy the full SHA 274b1faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 76bbd13 - Browse repository at this point
Copy the full SHA 76bbd13View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6c671e8 - Browse repository at this point
Copy the full SHA 6c671e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for df607a4 - Browse repository at this point
Copy the full SHA df607a4View commit details -
Configuration menu - View commit details
-
Copy full SHA for c496254 - Browse repository at this point
Copy the full SHA c496254View commit details -
Configuration menu - View commit details
-
Copy full SHA for a090e78 - Browse repository at this point
Copy the full SHA a090e78View commit details -
Configuration menu - View commit details
-
Copy full SHA for 75392b0 - Browse repository at this point
Copy the full SHA 75392b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4a2d42a - Browse repository at this point
Copy the full SHA 4a2d42aView commit details -
It turns out, cd actually does not cd. It is identical to setCurrentFolder.
Configuration menu - View commit details
-
Copy full SHA for bcb43d6 - Browse repository at this point
Copy the full SHA bcb43d6View commit details -
Remove support for read-only data in ME.
It was never used here. The idea originates in product-based harvesting, where we'd copy-on-write histograms borrowed out of edm products. Since we still have the edm::Serivce<DQMStore>, this is not required now: we can have mutable 'products'.
Configuration menu - View commit details
-
Copy full SHA for 5eb4547 - Browse repository at this point
Copy the full SHA 5eb4547View commit details -
More agressively reset Scope to JOB.
In harvesting, we need to make sure verything stays at JOB Scope so things actually get saved to the legacy output file at endJob.
Configuration menu - View commit details
-
Copy full SHA for e49a2b5 - Browse repository at this point
Copy the full SHA e49a2b5View commit details -
Add a reScope option also to the EDMtoMEConverter.
It is equivalent to the DQMRootSource in role. The default config always sets it to JOB, since that is what *all* existing workflows expect. The not-JOB option is only used for the unit tests. An issue is that harvesting code now can no longer tell if an ME was saved per lumi or not.
Configuration menu - View commit details
-
Copy full SHA for 50df285 - Browse repository at this point
Copy the full SHA 50df285View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c2c3fa - Browse repository at this point
Copy the full SHA 9c2c3faView commit details -
Configuration menu - View commit details
-
Copy full SHA for ef545b1 - Browse repository at this point
Copy the full SHA ef545b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3bff393 - Browse repository at this point
Copy the full SHA 3bff393View commit details -
Configuration menu - View commit details
-
Copy full SHA for 78344c9 - Browse repository at this point
Copy the full SHA 78344c9View commit details -
That the legacy output is not saved is arguably a bug, but it is planned like this: It could be fixed by booking into RUN scope in the test legacy modules. However, that is not what the legacy modules will do in practice. It would be nice to have an ouptut test for the Analyzer->TDirectory case which is what legacy modules will commonly do.
Configuration menu - View commit details
-
Copy full SHA for 06e26df - Browse repository at this point
Copy the full SHA 06e26dfView commit details -
Use stable sort when reading DQMIO.
This is mostly to make the tests happy: When reading pre-run scalars from split DQMIO files, the result could be the value from any file, since it dependes on processing order. We can't do anything about that in general (we might have a job processing lumi 1 and 4, and another 2 and 3, and then merge the results; which value should be used?), but for the tests we can at least make the behaviour detetministic for the test case.
Configuration menu - View commit details
-
Copy full SHA for df9bb32 - Browse repository at this point
Copy the full SHA df9bb32View commit details -
Update tests for new DQMStore.
Apart from bug fixes in the tests, there are a few expected changes: - Output of legacy modules is JOB scope, so it will not be save to DQMIO. - DQMIO->TDirectory conversion needs reScope option. Other limitaitons existed before but are more clear now: - Values of scalar values that are not constant over a run/lumi split into JOBs are arbitrary. - Histograms filled per job or per lumi do depend on job splitting, since the number of beginRun/beginLumi transitions changes. New tests/checks cover fastHadd, concurrent lumis and in-order harvesting. The testing of actual histogram contents (correct merging, no double counting etc.) is still very limtied here; mostly these test ensure that there are no crashes and that objects make it into the respective output formats.
Configuration menu - View commit details
-
Copy full SHA for 341bf72 - Browse repository at this point
Copy the full SHA 341bf72View commit details -
Configuration menu - View commit details
-
Copy full SHA for 34d729a - Browse repository at this point
Copy the full SHA 34d729aView commit details -
Configuration menu - View commit details
-
Copy full SHA for f92aa2b - Browse repository at this point
Copy the full SHA f92aa2bView commit details -
Configuration menu - View commit details
-
Copy full SHA for e8578fb - Browse repository at this point
Copy the full SHA e8578fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for f9d9b11 - Browse repository at this point
Copy the full SHA f9d9b11View commit details -
Configuration menu - View commit details
-
Copy full SHA for 62dd089 - Browse repository at this point
Copy the full SHA 62dd089View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5436ff4 - Browse repository at this point
Copy the full SHA 5436ff4View commit details -
Configuration menu - View commit details
-
Copy full SHA for b6b5018 - Browse repository at this point
Copy the full SHA b6b5018View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f23990 - Browse repository at this point
Copy the full SHA 3f23990View commit details -
Book EcalHitsV MEs in correct scope.
This is required for all legacy modules running outside harvesting.
Configuration menu - View commit details
-
Copy full SHA for 392585e - Browse repository at this point
Copy the full SHA 392585eView commit details -
Add a RAII style guard for booking Scope.
As suggested by @Dr15Jones. Also some comment cleanups.
Configuration menu - View commit details
-
Copy full SHA for af70230 - Browse repository at this point
Copy the full SHA af70230View commit details -
Configuration menu - View commit details
-
Copy full SHA for 26e822d - Browse repository at this point
Copy the full SHA 26e822dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 280e50f - Browse repository at this point
Copy the full SHA 280e50fView commit details -
That does not fix the unit test failure, though.
Configuration menu - View commit details
-
Copy full SHA for 5873593 - Browse repository at this point
Copy the full SHA 5873593View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3b06832 - Browse repository at this point
Copy the full SHA 3b06832View commit details -
- Remove unused methods (also their bodies). - Restrict access, use friends (this needed also some changes in other places) - Provide a switchObject() to prevent a race when using forceReplace when booking. - Change mutable_ to a normal pointer. - Reorder declarations to make a bit more sense. Still many things to be improved (the API of MonitorElement is huge and messy) but better than before.
Configuration menu - View commit details
-
Copy full SHA for d5ad6bb - Browse repository at this point
Copy the full SHA d5ad6bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 44a7d3d - Browse repository at this point
Copy the full SHA 44a7d3dView commit details -
Remove some other usages of removed ME APIs.
Not sure it the update() in beammonitor was really unnecessary, but getTH1() should also mark the ME as dirty.
Configuration menu - View commit details
-
Copy full SHA for b26295d - Browse repository at this point
Copy the full SHA b26295dView commit details -
Properly cleanup in case of exceptions.
This is not functionally required, but makes debugging much easier, in case a different thread continues using the IBooker while the first thread handles the exception.
Configuration menu - View commit details
-
Copy full SHA for 6ebd8f5 - Browse repository at this point
Copy the full SHA 6ebd8f5View commit details
Commits on Feb 4, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 2f51722 - Browse repository at this point
Copy the full SHA 2f51722View commit details