Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [OMPI users] trouble using --mca mpi_yield_when_idle 1
From: Jens (jens-devel_at_[hidden])
Date: 2008-12-08 04:01:18


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
>