| 
  
  
     On 04/25/2016 07:00 PM, Sergey Prigogin
      wrote: 
     
    
      There is also a philosophical question on how
        properly report progress of work done in parallel. The orthodox
        approach is to just measure the amount of work completed so far
        relative to the total. This is the same approach that is used in
        the sequential case. 
     
    This is the approach I have in mind. 
     
    
      An alternative is a long-pole approach. Consider a
        use case where the work is consists of two chunks of unequal
        size given to two worker threads. The total time to completion
        is determined by the larger chunk and therefore the progress
        related to the smaller chunk is irrelevant and should not be
        reported at all. This can be achieved by writing a custom
        progress monitor that contains a collection of progress
        monitors, one for each thread, and reports the lowest of
        progress values across all child monitors. 
       
     
    In this case, how are we sure the longer thread will complete before
    the other one, so that it would be the only one to report? Somehow,
    it seems to me that reporting progress and reporting time to
    completion are different things when working in parallel, and that
    only the first one (progress) can easily be reported reliably, like
    you described in the 1st part of your answer. 
     
    Reporting work done may not be perfect, but it would already be
    quite good IMO. 
    
  
 |