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 > > us...@open-mpi.org > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users