
Estoy usando Ubuntu Server Edition 11.10 y tengo dos programas con un uso intensivo de CPU ejecutándose en el mismo núcleo. Ninguno de estos procesos fue programado para procesamiento multinúcleo. ¿Hay alguna manera de decirle al proceso A que se ejecute en el Core 1 y al proceso B que se ejecute en el Core 2?
Respuesta1
La respuesta aceptada puede ser un buen consejo, pero ciertamente no es una respuesta a su pregunta. Su pregunta tampoco me indica que no esté calificado para escuchar la respuesta; de hecho, parece un buen ejemplo de una situación en la que desearía indicar específicamente qué procesadores deben hacer qué.
Yendo al grano, lo que quieres son conjuntos de CPU. Son compatibles con la versión 11.10 de Ubuntu, ya que utiliza un Kernel de Linux bastante reciente. Creo que se requiere Linux 2.6.
Puede leer la página de manual de cpuset aquí:http://www.kernel.org/doc/man-pages/online/pages/man7/cpuset.7.html
Aquí hay otra página para lectura general:http://www.bullopensource.org/cpuset/
Linux puede ser "excelente" a la hora de decidir cómo asignar el tiempo de la CPU, pero no es perfecto.
Respuesta2
Espero que esto no parezca de mala educación, pero si haces esta pregunta, ni siquiera deberías considerarla. Esta es una de esas cosas que Linux es realmente bueno para resolver por sí solo. Si hiciera esto, probablemente tendría un impacto muy negativo en el rendimiento. Incluso si el programa no está diseñado para utilizar más procesadores, Linux los moverá a diferentes núcleos según sea necesario. El programa no se dará cuenta.
Es posible que desee darles a ambos nice
valores bajos con el nice
comando para darles prioridades más altas.