Afinidad de procesos

Xavier Andrade andrade en theory.polytechnique.fr
Lun Mar 24 07:58:15 CLST 2008


On Sun, 23 Mar 2008, Aldrin Martoq wrote:

> No tengo idea, pero segun lo que _acabo_ de leer:
> - instala numactl lo cual resuelve tu consulta:
> $ numactl --cpubind=0 --membind=0,1 process
> Run process on node 0 with memory allocated on node 0 and 1.
> etc...
>

Si, sabiendo donde uno quiere correr es facil. El problema es que no se 
cual numero de cpu o nodo son los que puedo usar ya que es una maquina 
compartida con otros programas y probablemente correra varias instancias 
de mi programa (la maquina que estoy usando para las pruebas tiene 128 
procesadores).

Lo unico que puedo asumir es que puedo seguir corriendo en el procesador 
que ya me asignaron. Entonces o necesito algo que le diga "quedese 
corriendo el en nodo en que esta" o algo que me diga en que nodo esta 
corriendo un proceso.

> - Si necesitas afinar esto (hacer algo mas complejo que numactl),
> tienes que usar libnuma en tu programa.  En particular, tu consulta es
> la API numa_get_run_node_mask().
> - Con sched_getaffinity() puedes saber _dentro de un nodo numa_ en que
> CPU esta corriendo y/o cambiarlo.

Pero como puedo saber donde esta corriendo, por que segun entiendo solo 
devuelve los procesadores en que "puede correr".

Saludos,

Xavier


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