1
1
openmpi/orte/tools/orted
Ralph Castain 3daf8b341b Fix the sched_yield problem for generic environments. We now determine and set sched_yield during mpi_init based on the following logical sequence:
1. if the user has specified sched_yield, we simply do what we are told

2. if they didn't specify anything, try to get the number of processors on this node. Note that we already now get the number of local procs in our job that are sharing this node - that now comes in through the proc callback and is stored in the ompi_proc_t structures.

3. if we can get the number of processors, compare that to the number of local procs from my job that are sharing my node. If the number of local procs exceeds the number of processors, then set sched_yield to true. If not, then be a hog and set sched_yield to false

4. if we can't get the number of processors, default to conservative behavior and set sched_yield to true.

Note that I have not yet dealt with the need to dynamically adjust this setting as more processes are added via comm_spawn. So far, we are *only* looking within our own job. Given that we have now moved this logic to mpi_init (and away from the orteds), it isn't yet clear to me how a process will be informed about the number of procs in *other* jobs that are also sharing this node.

Something to continue to ponder.

This commit was SVN r13430.
2007-02-01 19:31:44 +00:00
..
help-orted.txt Update the copyright notices for IU and UTK. 2005-11-05 19:57:48 +00:00
Makefile.am Rename liborte to libopen-rte and libopal to libopen-pal per telecon today 2006-12-05 18:27:24 +00:00
orted.c Fix the sched_yield problem for generic environments. We now determine and set sched_yield during mpi_init based on the following logical sequence: 2007-02-01 19:31:44 +00:00
orted.h Fix the sched_yield problem for generic environments. We now determine and set sched_yield during mpi_init based on the following logical sequence: 2007-02-01 19:31:44 +00:00