On Fri, Dec 4, 2009 at 10:10, Eugene Loh <eugene....@sun.com> wrote:

>  Nicolas Bock wrote:
>
> On Fri, Dec 4, 2009 at 08:21, Ralph Castain <r...@open-mpi.org> wrote:
>
>> You used it correctly. Remember, all that cpu number is telling you is the
>> percentage of use by that process. So bottom line is: we are releasing it as
>> much as we possibly can, but no other process wants to use the cpu, so we go
>> ahead and use it.
>>
>>  If any other process wanted it, then the percentage would drop and the
>> other proc would take some.
>>
>  When you say "the other proc would take some", how much do you expect it
> to take? In my case above, the master process does not appear to yield a
> whole lot. Can I reduce the polling frequency? I know that my slave
> processes typically run several minutes to hours.
>
> In my (limited) experience, the situation is a little of both.  OMPI is
> yielding.  Yielding makes a difference only if someone else wants the CPU.
> But even if someone else wants the CPU, OMPI in yield mode will still be
> consuming cycles.  It's like the way I drive a car.  When I approach a stop
> sign, I slow down -- really, officer, I do -- and if there is cross traffic
> I let it go by ahead of me.  But if there is no cross traffic, I, ahem,
> proceed expediently.  And, even if there is cross traffic, their progress is
> still impacted by me -- heck, I'm all for obeying stop signs and all, but
> I'm no doormat.  OMPI processes can yield, but they only check to yield
> every now and then.  Between checks, they are not timid processes, even if
> other processes are waiting to run.  I once had some numbers on this.  Yield
> helped, but not as effectively as one might have imagined.
>

Yes, that's the impression I get as well, the master process might be
yielding, but it doesn't appear to be a lot. Maybe I should do this
differently to avoid this CPU usage in master. All I really want is to
execute another process somewhere on a free node in my MPI universe, wait
for it to be done and go on. From my limited understanding of MPI,
MPI_Comm_spawn() and MPI_Barrier() seemed just like what I needed, but as I
said, maybe there are other ways to do this.

nick

Reply via email to