-
Notifications
You must be signed in to change notification settings - Fork 530
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
FIX: Restore generate_gantt_chart functionality #3290
Conversation
As noted
Originally posted by @ccraddock in FCP-INDI/C-PAC#1404 (comment)
I see the profile uses Originally posted by @shnizzedy in FCP-INDI/C-PAC#1404 (comment)
Originally posted by @shnizzedy in FCP-INDI/C-PAC#1404 (comment) I think the issues of
are related to this PR and issue, but beyond the scope of these changes. C-PAC has its own callback function in which I'm dividing and rounding, so I made no changes regarding |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3290 +/- ##
==========================================
+ Coverage 72.86% 73.15% +0.28%
==========================================
Files 1278 1278
Lines 59305 59356 +51
==========================================
+ Hits 43212 43419 +207
+ Misses 16093 15937 -156 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
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.
Looks reasonable, though I don't have any experience with this bit of the code. Inclined to merge tomorrow unless someone complains.
My only hesitance is the potentially misleading |
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.
Looks good, just some minor nits.
My only hesitance is the potentially misleading runtime_threads ― maybe that should be fixed before restoring this functionality?
I agree 👍
Ref nipy#3290 (comment), nipy#3290 (comment) Co-authored-by: Mathias Goncalves <[email protected]>
Was this fixed? What needs doing? |
I haven't fixed it (yet at least). The issue is that the chart uses nipype/nipype/utils/profiler.py Line 143 in e9217c2
This leads to thread counts in the hundreds when they're expected to be in the ones, like So I think the "threads" part of these charts should be changed before the chart functionality is restored, either
|
Yeah, seems like we want something like:
|
An existing unit test does nipype/nipype/interfaces/base/tests/test_resource_monitor.py Lines 76 to 78 in 6c06030
which is similar to what we're doing for now in C-PAC: if runtime_threads != 'N/A':
runtime_threads = math.ceil(runtime_threads/100) My concern is that, as I read
― psutil documentation: Process.cpu_percent this number can be a misleading estimate. For example, if a process is using 25% of each of 4 CPUs, I believe this would report 100%, which would reduce to 1 or 2 threads depending on how we're rounding up or not. I'd be happy to learn that either I'm misunderstanding the number or that the number is good enough. |
@shnizzedy Can you rebase/merge master to resolve conflicts? I think we let this go too long and should just merge and let people find bugs and fix them. |
Ref nipy#3290 (comment), nipy#3290 (comment) Co-authored-by: Mathias Goncalves <[email protected]>
933fad3
to
6490708
Compare
* exclude nodes without timing information from Gantt chart * fall back on "id" or empty string if no "name" in node
Co-authored-by: Mathias Goncalves <[email protected]>
Co-authored-by: Mathias Goncalves <[email protected]>
Ref nipy#3290 (comment), nipy#3290 (comment) Co-authored-by: Mathias Goncalves <[email protected]>
Co-authored-by: Chris Markiewicz <[email protected]>
6490708
to
6830e3a
Compare
e644bdd
to
1bce774
Compare
1bce774
to
19a0355
Compare
b35aa95
to
4c0835f
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.
Passing tests! Small comments.
Co-authored-by: Chris Markiewicz <[email protected]>
Co-authored-by: Chris Markiewicz <[email protected]>
Do we want to do this
in this PR or kick the can on it? |
Let's kick the can. If you want to open another PR in 5 minutes, that's fine with me. Last time we had that question, it delayed things 3 years. |
Summary
Fixes #2982. Maybe fixes #3527.
All tests pass locally. 8/13 jobs pass on Travis. The Travis failures seem unrelated to the changes in this PR.After rebase, all tests pass.
List of changes proposed in this PR (pull-request)
nipype/nipype/utils/draw_gantt_chart.py
Line 391 in fa65caf
name
, useid
or an empty string forname
instead of crashingstart
andfinish
values like"N/A"
and"Unknown"
nipype/nipype/utils/draw_gantt_chart.py
Lines 144 to 147 in a08ee57
nipype/nipype/utils/draw_gantt_chart.py
Lines 151 to 154 in a08ee57
nipype/nipype/pipeline/plugins/tests/test_callback.py
Lines 66 to 98 in fa65caf
Acknowledgment