找出进程RAM的NUMA位置

我正在做同一个应用程序的多个实例的应用程序基准testing。 我发现把它们的进程(在Linux下是sched_setaffinity,在Windows下是TaskManager)固定到特定的CPU可以提高性能。 所以我会有:

* whatever.exe pinned to CPU 1 * whatever.exe pinned to CPU 2 * whatever.exe pinned to CPU 3 * whatever.exe pinned to CPU 4 

每个whatever.exe都有自己的缓冲区和堆内存。 我想避免CPU 1上的进程必须从CPU 2访问RAM,因为使用来自Intel的Core Microarchitecture,这将需要QPI跃点到下一个处理器。

我怎样才能确定在Windows下,一个进程正在使用哪个CPU的RAM? 我怎样才能在Linux下做到这一点?

我正在考虑一个类似于“进程X的RAM从物理RAM地址Y到Z,CPU A直接连接到从地址B到C的RAM”的答案。

有没有一个Windows工具来获得这种答案?