-
Notifications
You must be signed in to change notification settings - Fork 171
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
JP-3290 Isolate candidate processing into their own pools #8227
JP-3290 Isolate candidate processing into their own pools #8227
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #8227 +/- ##
==========================================
+ Coverage 75.15% 75.24% +0.08%
==========================================
Files 470 474 +4
Lines 38604 38755 +151
==========================================
+ Hits 29014 29161 +147
- Misses 9590 9594 +4
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Gains a factor of 2 over the deepcopy.
bd8c994
to
3dbfbf8
Compare
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.
LGTM
Resolves JP-3290
Closes #7688
This PR addresses the runtime issue of association generation. On inefficiency is that the exposure/association comparison checks exposures against associations that are for mutually exclusive candidates. The membership checking is complicated and takes time, slowing the process greatly. The optimization here is to isolate the candidates into their own pools, removing a large fraction of checking that is unnecessary resulting in significant speedup.
The example in the issue, generating associations for 01243 for association candidate ids o002, c1005 & c1000. The issue states "still running after more than a day without completing". Now this situations runs in about 3 hours.
A second optimization implemented involves the membership checking. If a check fails, the constraints of an association need to be restored from their original state. Originally this involved a deep copy of the full association. This has been modified to only copy off the constraint parameters themselves, introducing a factor of 2.5 speed up in the membership checking.
Checklist for maintainers
CHANGES.rst
within the relevant release sectionHow to run regression tests on a PR