Ticket #3762 (assigned)

Opened 9 years ago

Last modified 5 years ago

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:4 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.2 to Release 2.3

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:6 Changed 8 years ago by Karl Palmen

  • Owner changed from Anyone to Karl Palmen

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.

Last edited 5 years ago by Stuart Campbell (previous) (diff)

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:9 Changed 8 years ago by Karl Palmen

  • Status changed from assigned to accepted

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:14 Changed 8 years ago by Karl Palmen

  • Milestone changed from Release 2.4 to Release 2.5

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:17 Changed 7 years ago by Karl Palmen

  • Milestone changed from Release 2.5 to Release 2.6

comment:18 Changed 7 years ago by Nick Draper

  • Status changed from assigned to new

comment:19 Changed 7 years ago by Nick Draper

  • Component changed from Mantid to Framework

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

Note: See TracTickets for help on using tickets.