Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Question about MPI_Barrier
From: Storm Zhang (stormzhg_at_[hidden])
Date: 2010-10-21 12:53:35


Thanks a lot.

On Thu, Oct 21, 2010 at 9:21 AM, Jeff Squyres <jsquyres_at_[hidden]> wrote:

> Ah. The original code snipit you sent was:
>
> MPI::COMM_WORLD.Barrier();
> if if(rank == master) t1 = clock();
> "code A";
> MPI::COMM_WORLD.Barrier();
> if 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.
>
Yes, it makes sense but I have no idea how big the time difference for
running barrier function. I don't expect it big either since all our compute
nodes have same configuration.

> 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.
>
No. We have 1024 nodes available and I'm using 500.

>
> On Oct 21, 2010, at 9:24 AM, Storm Zhang wrote:
>
> >
> > Thanks a lot for your reply. By commenting code B, I mean if I remove the
> code B part, then the time spent on code A seems to run faster. I do have a
> lot of communications in code B too. It involves 500 procs. I had thought
> code B should have no effect on the time spent on code A if I use
> MPI_Barrier.
> >
> > Linbao
> > On Thu, Oct 21, 2010 at 5:17 AM, Jeff Squyres <jsquyres_at_[hidden]>
> wrote:
> > On Oct 20, 2010, at 5:51 PM, Storm Zhang wrote:
> >
> > > I need to measure t2-t1 to see the time spent on the code A between
> these two MPI_Barriers. I notice that if I comment code B, the time seems
> much less the original time (almost half). How does it happen? What is a
> possible reason for it? I have no idea.
> >
> > I'm not sure what you're asking here -- do you mean that if you put some
> comments in code B, it takes much less time than if you don't put comments?
> If so, then the comments have nothing to do with the execution run-time --
> something else is going on that is causing the delay. Some questions:
> >
> > - how long does it take to execute code B -- microseconds, or seconds, or
> ...?
> > - how many processes are involved?
> > - what are you doing in code B; is it communication intensive and/or do
> you synchronize with other processes?
> > - are you doing your timings on otherwise-empty machines?
> >
> > --
> > Jeff Squyres
> > jsquyres_at_[hidden]
> > For corporate legal information go to:
> > http://www.cisco.com/web/about/doing_business/legal/cri/
> >
> >
> > _______________________________________________
> > users mailing list
> > users_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
> >
> > _______________________________________________
> > users mailing list
> > users_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>