b44f8d4b28
Use hwloc to obtain the cpuset for each process during mpi_init, and share that info in the modex. As it arrives, use a new opal_hwloc_base utility function to parse the value against the local proc's cpuset and determine where they overlap. Cache the value in the pmap object as it may be referenced multiple times. Thus, the return value from orte_ess.proc_get_locality is a 16-bit bitmask that describes the resources being shared with you. This bitmask can be tested using the macros in opal/mca/paffinity/paffinity.h Locality is available for all procs, whether launched via mpirun or directly with an external launcher such as slurm or aprun. This commit was SVN r25331. |
||
---|---|---|
.. | ||
base | ||
external | ||
hwloc122ompi | ||
configure.m4 | ||
hwloc.h | ||
Makefile.am | ||
README.txt |
12 Sep 2011 Notes for hwloc component maintainers: 1. There can only be *1* hwloc version component at a time. Specifically: if there are multiple hwlocXYZ components (i.e., different versions of hwloc), then they must all be .ompi_ignore'd except for 1. This is because we currently m4_include all of the underlying hwloc's .m4 files -- if there are multiple hwlocXYZ components, I don't know if m4 will barf at the multiple, conflicting AC_DEFUNs, or whether it'll just do something completely undefined. 1a. As a consequence, if you're adding a new hwloc version component, you'll need to .ompi_ignore all others while you're testing the new one. 2. If someone wants to fix #1 someday, we might be able to do what we do for libevent: OMPI_CONFIG_SUBDIR (instead of slurping in hwloc's .m4 files).