Within the BTL code (and surely elsewhere), we can use those convenient OPAL_PROC_ON_LOCAL_{NODE,SOCKET, ...} macros to figure out where another endpoint is located compared to us.

The problem is that it only works when ORTE defines it. The NODE works almost always since ORTE is always doing it. But for the NUMA, SOCKET, or CORE to work, we need to use Open MPI binding/mapping capabilities. If the process affinity was set with something else (custom scripts using taskset, cpusets, ...), it doesn't work.

How hard do you think it would it be to detect the affinity and set those flags using hwloc to figure out if we're on the same {SOCKET, CORE, ...} ? Where would it be simpler to do this ?

Thanks.
Sylvain

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may 
contain
confidential information.  Any unauthorized review, use, disclosure or 
distribution
is prohibited.  If you are not the intended recipient, please contact the 
sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

Reply via email to