Afinidad de procesos

Xavier Andrade andrade en theory.polytechnique.fr
Dom Mar 23 11:35:38 CLST 2008


Hola a todos,

Estoy intentando hacer algo y quizas aca me puedan ayudar. Lo que quiero 
hacer es averiguar en un codigo (C y Fortran) cual es la topologia de la 
red para los procesos que estoy corriendo en una maquina NUMA.

Es decir, tengo varios procesos y me gustaria saber en que nodo esta 
corriendo cada uno e idealmente fijar el proceso a ese nodo. (Nodos en el 
sentido de procesadores que comparten un banco de memoria.)

Estoy usando libnuma, pero no encuentro la manera de preguntar en que nodo 
esta el proceso actual. En todos los ejemplos que he encontrado dan 
numeros de nodo estaticos, pero en mi caso solo se que el sistema asigna 
un procesador por proceso, por lo que no puedo asumir ningun valor y tengo 
que determinarlo dinamicamente durante la ejecucion.

Intente tambien usar las llamadas sched_affinity pero esta el mismo 
problema, se pueden dar la afinidad con ciertas CPU pero por lo que 
entiendo tampoco se puede averiguar en que CPU esta corriendo el proceso.

Alguien sabe de que manera se puede averiguar en que CPU/nodo esta 
corriendo un proceso? No importa que sea especifica de linux (libnuma ya 
lo es).

Saludos,

Xavier



Más información sobre la lista de distribución Linux