-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Implement a GenericCloner test module
#47504
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
Conversation
This EDProducer will clone all the event products declared by its configuration, using their ROOT dictionaries.
|
cms-bot internal usage |
|
@makortel what do you think of this approach ? I don't mind moving stuff around, of course: consider this more of a prototype. |
|
please test |
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47504/43956
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
c559d9f to
e5278a6
Compare
|
A new Pull Request was created by @fwyzard for master. It involves the following packages:
@Dr15Jones, @cmsbuild, @fwyzard, @makortel, @smuzaffar can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
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.
Most of this could actually go directly under DataFormats/Common, only the specialisation of the Event methods need to go in FWCore/Framework.
Let me know if I should split and rearrange this.
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.
Most of this could actually go directly under DataFormats/Common, only the specialisation of the Event methods need to go in FWCore/Framework.
Let me know if I should split and rearrange this.
| return {object->metadata().size()}; | ||
| } | ||
|
|
||
| static std::vector<std::pair<void*, std::size_t>> regions(PortableDeviceCollection<T, TDev>& object) { |
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.
To make the specialisation for PortableDeviceCollection work, some kind of pass-through specialisation for edm::DeviceProduct is still needed.
Right. Following the structure of the CondDB, i.e. |
|
Hi Matti, thanks for the suggestions.
I suspect the API will need to remain a bit more complicated to support
efficient transfers across processes, but we'll try to simplify it as much
as possible.
.A
|
|
Milestone for this pull request has been moved to CMSSW_16_0_X. Please open a backport if it should also go in to CMSSW_15_1_X. |
…gin::PluginFactory
…gin::PluginFactory
…gin::PluginFactory
…gin::PluginFactory
…gin::PluginFactory
|
type ngt |
|
The framework part of this PR (the first two commits) has been rebased and moved to #49449. The second part has been reimplemented with the plugin-based serialisation approach, and will be moved to a different PR. |
|
The plugin-based serialisation mechanism is implemented in #49475. |
PR description:
Specialise
HandleandOrphanHandleforWrapperBase: this lets users produce and consume collections via their wrapper, using their run time type information (e.g. type name, type id, ...) instead of the compile time types. Implement integration test for this specialisations.Introduce a
MemcpyTraitsstructure, that should be specialised for types that can be safelymemcpyed, without requiring a full ROOT streamer de/serialisation.Specialise the
MemcpyTraitsfor arithmetic types andvectors of arithmetic types, and allPortableObjectandPortableCollectiontypes.Implement
edmtest::GenericCloner: thisEDProducerwill consume and clone all the event products declared by its configuration; a directmemcpywill be used for types that support theMemcpyTraitsinterface; the ROOT dictionaries will be use to serialise and deserialise the other tyepes.PR validation:
Unit tests pass.
If this PR is a backport please specify the original PR and why you need to backport that PR. If this PR will be backported please specify to which release cycle the backport is meant for:
May be backported to 15.0.x as part of the MPI work.