Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] trouble using --mca mpi_yield_when_idle 1
From: Terry Frankcombe (terry_at_[hidden])
Date: 2008-12-08 04:56:59


As Eugene said: Why are you desperate for an idle CPU? Is it not
yielding to other processes?

On Mon, 2008-12-08 at 10:01 +0100, Jens wrote:
> Hi Douglas,
>
> this an answer to my question on the paraview-mailinglist.
>
> I have the same problem with paraview, that it simply waits for more to
> do in client-server(MPI) mode, but is running on 100%.
>
> Different MPI-Implementations seem to behave different here. Using
> MPICH2 for example does not result in 100% cpu-time for paraview while
> waiting.
>
> I desperate to know if that is possible with open-mpi, too. These FAQs
> where interesting, but did not help:
> http://www.open-mpi.org/faq/?category=running#oversubscribing
> http://www.open-mpi.org/faq/?category=running#force-aggressive-degraded
>
> Greetings
> Jens
>
> Eugene Loh schrieb:
> > Douglas Guptill wrote:
> >
> >> Hi:
> >>
> >> I am using openmpi-1.2.8 to run a 2 processor job on an Intel
> >> Quad-core cpu. Opsys is Debian etch. I am reaonably sure that, most
> >> of the time, one process is waiting for results from the other. The
> >> code is fortran 90, and uses mpi_send and mpi_recv. Yet
> >> "gnome-system-monitor" shows 2 cpus at 100%.
> >>
> >> So I read, and re-read, the FAQs, and found the mpi_yield_when_idle
> >> flag, and tried it:
> >>
> >> mpirun --host localhost,localhost,localhost,localhost --mca btl
> >> sm,self --mca mpi_yield_when_idle 1 --byslot -np 2
> >> /home/dguptill/software/sopale_nested_2008-10-24/bin/sopale_nested_openmpi-intel-noopt
> >>
> >>
> >> And still get, for each run, two cpus are at 100%.
> >>
> >> My goal is to get the system to a minimum usage state, where only one
> >> cpu is being used, if one process is waiting for results from the
> >> other.
> >>
> >> Can anyone suggest if this is possible, and if so, how?
> >>
> >>
> > I'm no expert on this, but I've played with the same problem. I think I
> > did this on Solaris, but perhaps the behavior is the same on other OSes.
> >
> > One issue is that "yield" might mean "yield if there is someone else
> > ready to run". Like a traffic sign: if someone else is there, you
> > yield. If no one else is there, there's no way to tell that someone is
> > yielding.
> >
> > Next, even if someone else is trying to run, "yield" doesn't give give
> > up the CPU 100%. It's still rather pesky.
> >
> > So, one question is whether you really want to have an idle CPU. Do
> > you, or do you simply want another process, if there is one, to be able
> > to run?
> >
> > Not a real answer to your question, but hopefully this helps.
> > _______________________________________________
> > 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