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 >