-
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
New seeding framework #16635
New seeding framework #16635
Conversation
A new Pull Request was created by @cmsbuild for CMSSW_9_0_X. It involves the following packages: DataFormats/TrackerRecHit2D @perrotta, @cmsbuild, @civanch, @lveldere, @silviodonato, @cvuosalo, @fwyzard, @ssekmen, @mdhildreth, @dmitrijus, @Martin-Grunewald, @slava77, @vanbesien, @davidlange6 can you please review it and eventually sign? Thanks. cms-bot commands are listed here #13028 |
I assume all discussion moves here now.. |
@cmsbuild , please test |
The tests are being triggered in jenkins. |
On 11/16/16 1:53 AM, Vincenzo Innocente wrote:
The main concern is the memory increase: its lifetime increase as well If the new data structures can be reduced in size to roughly the old
|
We can work on the memory from now to May. We need to find a way to get rid of unused event-product: building our own mini-framework is not an option. So I propose to proceed not to stop critical development for PhaseI. |
Btw unused event-products affect only VSS. They will be migrated away from RSS if memory is required. Deleting them at the end of the event will take of course longer. |
On 11/16/16 6:08 AM, Vincenzo Innocente wrote:
Unfortunately, the memory issue is blocking phase-2 simulations.
|
@mdhildreth @davidlange6 opinions? |
|
As I mentioned in #16202 (comment), it is relatively straightforward to craft a customize function that employs the existing early-delete mechanism to remove the memory increase. (I'm not saying it should be done, just that something can be done with existing framework support) |
On 11/16/16 6:28 AM, Matti Kortelainen wrote:
I was told that the existing early delete support is not stable.
|
Ok. It would be interesting hear more details. |
I wouldn't think it is not stable, more that it is hard to maintain. |
@Dr15Jones, could you please more specific w/r/t "hard to maintain"? |
Config side. |
My understanding is that @makortel is confident that it will be no more hard to maintain than current iterative tracking... |
That is correct. It should be enough to know
to programmatically set up everything in a generic way in a customize function (and for this case we know). |
Can this PR wait for 3-6 months? (until the phase-2 settles; the current large combinatorial problem is partly temporary, at least the extreme end of it with up to 3GB or per-event products there now and processing times of almost 4 hours in 10HS06 units). It's not introducing a new algorithm, it's just refactoring that simplifies some configuration work with some potential reduction of repetitive work done currently internally. |
_resolve(keys, name) | ||
|
||
# Find the consumers | ||
for moduleType in [process.producers_(), process.filters_(), process.analyzers_()]: |
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.
and can this loop move the Configuration/StandardSequences so we do it just once (when the next use case comes along..)
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.
Sure. Then the customiseEarlyDeleteForSeeding
needs to return the products
dictionary (string -> list of strings
) instead of process
.
Comparison job queued. |
Comparison job queued. |
@davidlange6 Are your comments for a subsequent PR or do you want updates here? |
its ok to be a followup (that makes pre1)
… On Nov 24, 2016, at 10:59 AM, Matti Kortelainen ***@***.***> wrote:
@davidlange6 Are your comments for a subsequent PR or do you want updates here?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Hi all - i'm propose to merge this tonight unless there are further comments to the contrary... |
+1
|
Despite of submitting this PR to 81X, this PR really targets (early) 90X (I'm submitting it now in the hope of gaining more time for the review in case L2s would have time to look already now).
This PR provides a new way to plug the seeding code to CMSSW. It takes the
TrackingRegion
creation, cluster number check, and doublet/triplet/quadruplet generation out of the seed generator, and makes each of them an EDProducer. The regions, decision of the cluster number check, and the hit doublets/triplets are delivered to subsequent components viaedm::Event
.The implementation is fully backwards compatible, i.e. all existing configurations should work out of the box. Instances of
SeedGeneratorFromRegionHitsEDProducer
can be migrated one at a time. Here the offline iterative tracking is fully migrated (including, with minimal effort, knock-on effects in FastSim and HI), but nothing else (e.g. HLT) is not (yet).Pros
fillDescriptions
fully supportedPixelQuadrupletGenerator
, removes repetitive doublet generation of certain layer pairsCAHit*Generator
Event
as separate collectionsCons
Subsequent steps
PixelTrackProducer
customizeHLTforCMSSW.py
)Expected effect
Tested in CMSSW_8_1_X_2016-10-04-1100 (rebased on top of CMSSW_8_1_X_2016-11-08-2300), no changes expected in monitored quantities. The expected speedup in 10224 (2017 ttbar+PU) seeding is ~2-3 %. The expected memory increase is ~10 MB (based on IgProf LIVE,
SimpleMemoryCheck
on 6 threads gives similar order of magnitude although across-event variations are larger).@rovere @VinInn @mtosi @felicepantaleo
Automatically ported from CMSSW_8_1_X #16202 (original by @makortel).