-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
[HLT/Patatrack] Duplicate Output Selection Two (or more) equivalent branches have been selected for output. #37207
Comments
assign hlt |
A new Issue was created by @silviodonato Silvio Donato. @Dr15Jones, @perrotta, @dpiparo, @makortel, @smuzaffar, @qliphy can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
(I cannot anymore assign the issue) |
assign core |
assign hlt |
assign heterogeneous |
New categories assigned: heterogeneous,core,hlt @missirol,@fwyzard,@Dr15Jones,@smuzaffar,@makortel,@makortel,@Martin-Grunewald you have been requested to review this Pull request/Issue and eventually sign? Thanks |
The issue is due to # SwitchProducer wrapping the legacy pixel rechit producer or the transfer of the pixel rechits to the host and the conversion from SoA
process.hltSiPixelRecHits = SwitchProducerCUDA(
# legacy producer
cpu = cms.EDAlias(
hltSiPixelRecHitSoA = cms.VPSet(
cms.PSet(type = cms.string("SiPixelRecHitedmNewDetSetVector")),
cms.PSet(type = cms.string("uintAsHostProduct"))
)
),
# conversion from SoA to legacy format
cuda = ...
) right ? |
yes, I think so. |
Looks like a problem of possibly more general interest, though. If we put the SwitchProducer branches "inline", like product = SwitchProducer(
cpu = cms.EDProducer("CPUProducer", ...),
acc = cms.EDProducer("AccProducer", ...)
) then
If we put the SwitchProducer branches "out of line" and use EDAliases, like productCpu = cms.EDProducer("CPUProducer", ...)
productAcc = cms.EDProducer("AccProducer", ...)
product = SwitchProducer(
cpu = cms.EDAlias("productCpu"),
acc = cms.EDAlias("productAcc")
) then
|
Thanks a lot @fwyzard for the clarification.
and I added
to process.hltOutputMinimal. The tracks are not visible (both running with GPU and with CPU)
If I drop the Patatrack customization function, everything looks ok
|
That's weird !?
@makortel @Dr15Jones is there anythng that would prevent storing the collection in the root file ? |
It seems that the problem is not related to SwitchProducer but with Task. The first configuration is ok, while the second one shows no pixel tracks. The difference is just:
From the log file I see these changes:
It sounds like the well-known problem of a module which is explicitly both in a Sequence and in a Task, but I don't find any of them |
ahh, probably I've understood it.
takes directly the |
Yes, sorry for the noise, my mistake. |
@silviodonato what do you get when you do
That is what is actually used by the framework to determine if something was stored. Else we can't tell if the data product was stored or it was just empty. |
Also, is the OutputModule on an |
I checked the two configurations in About
could you elaborate the problem? Is it just about having to adjust the keep/drop statements? |
One problem is that this approach does not allow us to keep both "branches" (for example, to send them from the HLT jobs to the DQM jobs and perform an online validation):
and I'm not sure if the other approach has any downsides or not:
In particular, I'm concerned about what would happen if we use |
The design goals included
In the first case, even if the "inline products" of SwitchProducer were allowed to be persisted, they couldn't be stored at the same time with the SwitchProducer "output product" for the same "duplicate branch" reason as the with the second case.
For this use case, would the aim be to
Currently with |
The error is self-explaining and related to the
keep *
.Not sure what is the best way to avoid this. Perhaps adding ad
drop
of all the EDAlias (or of the input used in the EDAlias)The text was updated successfully, but these errors were encountered: