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: Jens (jens-devel_at_[hidden])
Date: 2008-12-08 05:18:56


Hi Terry,

I would like to run a paraview-server all time on our cluster (even
though it is not in use 24h) - but this would simply result in some kind
of "heating-thread".

Even though it has (in theory) no impact on the node performace (which
is part of a grid-engine), it would simply result in some kind of
"heating-thread" which is not a nice idea.

Greetings
Jens

Terry Frankcombe schrieb:
> 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
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>