Aprovecha cada núcleo de tu procesador
Este es un mini post. Si tenés un procesador doble núcleo (intel, amd,dual core, core 2 duo, quad core, etc) o más de un procesador, podés designar procesos a cada uno de estos, para que no interfieran entre ellos. Si bien esta es una tarea del planificado del sistema, uno puede indicarle cómo quiere que trate a algunos proceso (por ejemplo con la utilidad nice).
La idea es mostrarles cómo elegir en cuál núcleo, o en cuáles núcleos quiero que se ejecute un proceso. Esto se llama afinidad o affinity en inglés.
La utilidad que me permite hacer esto se conoce como taskset y permite tanto arrancar un proceso en los determinados procesadores de nuestro sistema, así como también cambiar su afinidad luego de estar corriendo estos (mediante el PID).
Para elegir los procesadores basta con pensar en cada procesador (o núcleo) como un bit en la siguiente máscara:
0 0 0 0 0 0 0 1 Procesador 1 0 0 0 0 0 0 1 0 Procesador 2 0 0 0 0 0 1 0 0 Procesador 3 0 0 0 0 1 0 0 0 Procesador 4 0 0 0 0 0 0 1 1 Procesador 1,2 0 0 0 0 0 1 1 0 Procesador 2,3 |
Como los valores deben ser escritos en hexa, el comando se termina ejecutando como:
Para el núcleo 2: taskset 0x00000002 ./proceso |
Para el núcleo 1: taskset 0x00000001 ./proceso |
Espero haya sido útil 😀
Milton Pividori
Muy bueno! Lástima que no puedo hacer click en las imágenes para verlas mejor.
nacho
Ups, las subí así chiquitas a modo de ilustración.
No me di cuenta de guardar los originales. Asi que te vas a quedar con las ganas.
De paso: estaría bueno asignarle un núcleo al «Monitor del sistema» jajajaja
http://abock.org/2008/09/03/stay-classy-gnome/
(vamos a seguir jodiendo con eso toda la vida jeje)