Progress reporting improvements#3014
Progress reporting improvements#3014dzenanz merged 8 commits intoInsightSoftwareConsortium:masterfrom
Conversation
jhlegarreta
left a comment
There was a problem hiding this comment.
Have not tried, but wondering whether
Now the progress fills up twice faster so it reaches 100% when only 50% of work is done.
is the expected behavior, or an expected limitation (e.g. if it cannot be set to 50% when half of the job has been done, and to be 100% only when the job has been completed), whether the wording is accurate or else whether it is a misunderstanding of mine.
|
Before 840bae7 progress would go from 0% to 100% twice, overflowing from 100% to 0% about halfway. After 840bae7, the progress fills up to 100% during first half of the work, and stays there the second half of the work. Now, the progress fills up to 50% during first half of the work, and fills up to 100% during second half of the work. In all instances, the progress was usually being filled smoothly. |
blowekamp
left a comment
There was a problem hiding this comment.
Looks good. I just would like to know why it is needed to set is multiple times in a class hierarchy of constructors
d44632c to
e59597f
Compare
|
@jhlegarreta I updated the commit message. |
jhlegarreta
left a comment
There was a problem hiding this comment.
Thanks for the patch set and the commit message update, now it makes more sense to me.
After Brad's comment, I'm wondering whether setting/updating the threader update progress report flag should be disabled in child classes/whether that makes sense.
|
I have a more comprehensive solution. I am testing it locally. |
|
@dzenanz please start commit messages with capital letters for the ChangeLog. |
e59597f to
a7a16a8
Compare
24c9274 to
d46f46b
Compare
0cf3b4f to
1cd2afe
Compare
|
There is something wrong with progress updates the second time filter is run: |
This is the only problem left. How much of a problem is this? Does someone know how to solve it? I am somewhat tired of this PR. It started as quite a small fix. |
|
I found out the problem. It will take me some time to clean up the code. I will push the update tomorrow. |
1cd2afe to
8fe2029
Compare
8fe2029 to
79243ce
Compare
79243ce to
55ec9c6
Compare
|
In testing this PR against SimpleITK I got a large number of FFT related test further inailures, and one Progress report test failing. It will need further investigation. |
|
Thanks for testing. Feel free to push to this this branch if you find some easy fixes. |
|
PythonLaplacianImageFilterTest deadlocks on my computer too. At least I can reproduce the failure. |
|
CI Linux Python: |
55ec9c6 to
da3aa28
Compare
|
I have removed the problematic commit from this PR. I will see if I can iron it out in a follow-up PR. I think this can be merged now. |
Filter restarts can occur with streaming (processing the image in pieces) and with internal mini-pipelines which are executed multiple times. One such example is GradientMagnitudeRecursiveGaussianImageFilter.
If the wait_for completed successfully, two updates were issues in quick succession. That no longer happens.
da3aa28 to
1a2f9d5
Compare
|
I removed all far-reaching code from this PR, and left all the non-problematic code here. It probably no longer fixes #2875, so I changed the description accordingly. I plan the real fix for a follow-up PR. |
jhlegarreta
left a comment
There was a problem hiding this comment.
👍 Thanks @dzenanz. Given that @blowekamp tested a previous version against SimpleITK, may be he would like to take that again, but I'm for merging it as the one-but-last build passed tests, and hope this will as well.
|
Having to reset internal filter's progress when re-running seems like a red flag to me. I'd like to test with just re-running a filter in a standalone test to alleviate my concern. I'm not sure I'd have time tomorrow. There are a lot of changes here. |
blowekamp
left a comment
There was a problem hiding this comment.
I tested a few cases that were of concerned to me, and they all behaved correctly 🥳
Also SimpleITK tests seemed to be OK too (although there are other FFT issues).
Nice work!
|
Are the FFT issues captured in #3048? |
@blowekamp Could you please add @dzenanz and myself to FFT discussion if there are other open issues? |
|
When I narrow in down in SimpleITK, I'll create an issue if needed. Here is a build with the failure FYI: https://open.cdash.org/viewTest.php?onlyfailed&buildid=7657537 |
|
At a glance I'm guessing that the SimpleITK tests will need to add factory registrations for VNL FFT classes as the segfaulting tests all seem to require classes that depend on FFT filter instantiations. Whenever you get around to taking a closer look I'd recommend cross-referencing #3002 to see how this is being done in the ITK TestKernel as well as ITK GTests. |
Related to #2875.