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