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