Starting with Win7/Server2008R2 the GetNumaProximityNode(Ex) function is available. It should help retrieve the distance between NUMA nodes, but I can't understand from the documentation (http://msdn.microsoft.com/en-us/library/ms683206(VS.85).aspx) how it's supposed to work. It says that you give it a distance, and it returns the corresponding node (if there is any).
Reading some code from the Linux kernel and some HP APIC documentation I saw that distances are expressed in integers multiples of 10 (the distance to self is 10), but it can also bee something like 18 (not exactly two times slower). But I still can't figure out how to compute the distance between two nodes using the Windows API (under Linux libnuma has a 'distance' function that does this).
Does anyone know how to use this function?