Hi, Eugene,
You said:
" The bottom line here is that from a causal point of view it would seem
that B should not impact the timings.  Presumably, some other variable is
actually responsible here."
Could you explain it in more details for the second sentence. Thanks a lot.

Linbao

On Thu, Oct 21, 2010 at 9:58 AM, Eugene Loh <eugene....@oracle.com> wrote:

> Jeff Squyres wrote:
>
>  Ah.  The original code snipit you sent was:
>>
>> MPI::COMM_WORLD.Barrier();
>> if(rank == master) t1 = clock();
>> "code A";
>> MPI::COMM_WORLD.Barrier();
>> if(rank == master) t2 = clock();
>> "code B";
>>
>> Remember that the time that individual processes exit barrier is not
>> guaranteed to be uniform (indeed, it most likely *won't* be the same).  MPI
>> only guarantees that a process will not exit until after all processes have
>> entered.  So taking t2 after the barrier might be a bit misleading, and may
>> cause unexpected skew.
>>
>>
> The barrier exit times are not guaranteed to be uniform, but in practice
> this style of timing is often the best (or only practical) tool one has for
> measuring the collective performance of a group of processes.
>
>
>  Code B *probably* has no effect on time spent between t1 and t2.  But
>> extraneous effects might cause it to do so -- e.g., are you running in an
>> oversubscribed scenario?  And so on.
>>
>>
> Right.  The bottom line here is that from a causal point of view it would
> seem that B should not impact the timings.  Presumably, some other variable
> is actually responsible here.
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>

Reply via email to