On Fri, 26 May 2006, Brian W. Barrett wrote:
On Fri, 26 May 2006, Jeff Squyres (jsquyres) wrote:
You can see this by slightly modifying your test command -- run "env"
instead of "hostname". You'll see that the environment variable
OMPI_MCA_mpi_yield_when_idle is set to the value that you passed in on
the mpirun command line, regardless of a) whether you're oversubscribing
or not, and b) whatever is passed in through the orted.
While Jeff is correct that the parameter informing the MPI process that it
should idle when it's not busy is correctly set, it turns out that we are
ignoring this parameter inside the MPI process. I'm looking into this and
hope to have a fix this afternoon.
Mea culpa. Jeff's right that in a normal application, we are setting up
to call sched_yield() when idle if the user sets mpi_yield_when_idle to 1,
regardless of what is in the hostfile . The problem with my test case was
that for various reasons, my test code was never actually "idling" - there
were always things moving along, so our progress engine was deciding that
the process should not be idled.
Can you share your test code at all? I'm wondering if something similar
is happening with your code. It doesn't sound like it should be "always
working", but I'm wondering if you're triggering some corner case we
haven't thought of.
Brian
--
Brian Barrett
Graduate Student, Open Systems Lab, Indiana University
http://www.osl.iu.edu/~brbarret/