Mark is correct. Since ISCreateGeneral is labeled in the manual page as 
Collective this means that all processes synchronize during the call. Hence if 
any process gets to the call long before the other processes it will look like 
a great deal of time is being spent in the call, when in fact it is just 
waiting for the other processes. You should check the code before the call the 
ISCreateGeneral() for load balancing issues.

   Barry


> On Jul 5, 2020, at 3:27 PM, Mark Adams <mfad...@lbl.gov> wrote:
> 
> The column after the time in the PETSC output, on the  ISCreateGeneral row, 
> with -log_view, shows the ratio of the max time (shown) to min time.
> If you are using your own timers just report the min and max time that you 
> measure.
> You can also put an MPI_Barrier before the call to ISCreateGeneral to get 
> clean data.
> And I trust that the problem is well load balance, that is, all processors 
> have the same amount of data.
> 
> On Sun, Jul 5, 2020 at 4:00 PM Y. Shidi <ys...@cam.ac.uk 
> <mailto:ys...@cam.ac.uk>> wrote:
> Thank you for your reply Mark.
> What do you mean by ratio (max/min)?
> Do I need to turn on some options for this?
> 
> Kind regards,
> Shidi
> 
> On 2020-07-05 20:15, Mark Adams wrote:
> > ISCreateGeneral just takes your indices and caches them. But it is a
> > synch point. What ratio (max/min) is PETSc reporting in this data?
> > 
> > On Sun, Jul 5, 2020 at 1:51 PM Y. Shidi <ys...@cam.ac.uk 
> > <mailto:ys...@cam.ac.uk>> wrote:
> > 
> >> Dear developers,
> >> 
> >> I am currently doing a weak scaling test, and find that
> >> the weak scaling results for ISCreateGeneral() is very bad.
> >> For 2, 4, 8 processors, the running times for completing
> >> ISCreateGeneral() are:
> >> 0.687494, 3.00597 and 10.0613.
> >> I am not sure if this is normal.
> >> 
> >> Thank you for your time.
> >> 
> >> Kind Regards,
> >> Shidi

Reply via email to