Estou fazendo um benchmark de aplicativos com várias instâncias do mesmo aplicativo. Descobri que fixar seus processos (com sched_setaffinity no Linux, com o TaskManager no Windows) para CPUs específicas aumenta o desempenho. Então eu teria:
* whatever.exe pinned to CPU 1
* whatever.exe pinned to CPU 2
* whatever.exe pinned to CPU 3
* whatever.exe pinned to CPU 4
each whatever.exe tem seus próprios buffers e memória heap. Eu quero evitar que um processo na CPU 1 tenha que acessar a RAM da CPU 2 porque com a Microarquitetura Core da Intel, isso precisaria de um salto de QPI para o próximo processador.
Como posso determinar no Windows, qual RAM da CPU está sendo usada por um processo? Como posso fazer isso no Linux?
Estou pensando em uma resposta como "o processo X tem sua RAM do endereço RAM física de Y para Z e a CPU A está diretamente conectada à RAM do endereço B para C".
Existe uma ferramenta do Windows para obter esse tipo de resposta?