Ticket #3762 (assigned)
Child algorithms don't propagate their time estimates up
Reported by: | Martyn Gigg | Owned by: | Karl Palmen |
---|---|---|---|
Priority: | minor | Milestone: | Backlog |
Component: | Framework | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: |
Description
When testing #3620 it became apparent that the time estimation functionality on the progress notifications does not work when using child algorithms.
A test example is:
- Use the Load algorithm to load file that takes some time, e.g. Data/SANS2D/SANS2D00005512.nxs and the progress is reported as just a percentage;
- Now use LoadISISNexus to load the same file and the percentage also comes with a time estimate.
Change History
comment:1 Changed 9 years ago by Nick Draper
- Owner set to Anyone
- Status changed from new to assigned
comment:2 Changed 9 years ago by Nick Draper
- Milestone changed from Iteration 32 to Iteration 33
Moved to iteration 33 at iteration 32 code freeze
comment:3 Changed 8 years ago by Nick Draper
- Milestone changed from Release 2.1 to Release 2.2
Moved at end of release 2.1
comment:5 Changed 8 years ago by Nick Draper
- Milestone changed from Release 2.3 to Release 2.4
Moved to milestone 2.4
comment:7 Changed 8 years ago by Karl Palmen
It looks as though Algorithm::handleChildProgressNotification will need modifying to do this. The estimated time used by the parent could be equal to
childEstimatedTime + AfterChildEstimatedTime
where
AfterChildEstimatedTime = ((1 - m_endChildProgess)/ (m_endChildProgress - m_startChildProgress)) * EstimatedTimeOfWholeChildAlgorithm
This issue of how EstimatedTimeOfWholeChildAlgorithm is calculated still needs to be decided. It could be simply extrapolated from the estimatedTime of the child progress, but this might be unstable and could be stabilised by using data from earlier progress reports of the child algorithm.
Also child algorithm may not have an estimated time to propagate and I do not know how to determine whether this is so.
comment:8 Changed 8 years ago by Karl Palmen
Another approach would be to ignore the time estimate in the child algorithm and get the parent algorithm to do it's own timing whenever the child algorithm reports its progress.
comment:10 Changed 8 years ago by Karl Palmen
Pass Child Estimated Time if Final re #3762
Passing the unmodified estimated time of a child algorithm that finishes when its parent finishes, fixes this ticket for the use case of SANS2D00005512.nxs described in this ticket.
Signed-off-by: Karl Palmen <karl.palmen@…>
Changeset: f80fc24e1c4da6bec1dde8e1eb20c772ef69fcc9
comment:11 Changed 8 years ago by Karl Palmen
Reverse change cos of side effect in SaveNexus re #3762
Signed-off-by: Karl Palmen <karl.palmen@…>
Changeset: 6ed752a52bfe5a86e9952f90a1e4407caada3a8e
comment:12 Changed 8 years ago by Karl Palmen
Pass Child Estimated Time if Final re #3762
Passing the unmodified estimated time of a child algorithm that finishes when its parent finishes, fixes this ticket for the use case of SANS2D00005512.nxs described in this ticket.
Signed-off-by: Karl Palmen <karl.palmen@…>
Changeset: e7afbcfcb14abe6d69cf1fc1c2d878bc88040285
comment:13 Changed 8 years ago by Karl Palmen
Reverse change cos of side effect in SaveNexus re #3762
Signed-off-by: Karl Palmen <karl.palmen@…>
Changeset: b0d5356bd2a5ad2d7599f939eb5c79aea8cee337
comment:15 Changed 8 years ago by Karl Palmen
- Status changed from accepted to assigned
I think a major change in progress reporting may be needed for this. I think we need a way to share a single progress object with subalgorithms or functions within a algorithm in such a manner that to the subalgorithm or function, it behaves as though it were created locally, as in current practice.
comment:16 Changed 8 years ago by Karl Palmen
- Summary changed from Child algorithms don't propagage their time estimates up to Child algorithms don't propagate their time estimates up
comment:20 Changed 7 years ago by Nick Draper
- Milestone changed from Release 2.6 to Backlog
Moved to the Backlog after the code freeze for R2.6
comment:21 Changed 7 years ago by Nick Draper
- Status changed from new to assigned
bulk move to assigned at the into of the triage step
comment:22 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 4609