Puede hacerlo desde bash. Hay un maravilloso comando taskset
que conozco en la pregunta this (también puede encontrar una valiosa discusión sobre cómo debería funcionar el programador allí). El comando toma un pid de un proceso y lo vincula a los procesadores específicos.
taskset -c 0 -p PID
une el proceso con PID al procesador (núcleo) número 0.
¿Qué tiene que ver con hilos? A cada hilo se le asigna un identificador con los mismos derechos que pid, también conocido como "tid". Puede obtenerlo con gettid
syscall. O puede verlo, por ejemplo, en el programa top
al presionar H (algunos procesos se dividirán en muchas entradas aparentemente iguales con diferentes pids --- esos son hilos).
tenga en cuenta que un atributo de subproceso "do_not_migrate" también funcionaría ... – Ben
Recopilar trabajos en un procesador y dejar el otro procesador sin trabajar puede proporcionar un mejor ahorro de energía. – sambowry
@sambowry: se ejecuta en la máquina de 24 procesadores, sería un desperdicio de energía usar solo 1 núcleo de 24 y mantener la máquina encendida durante 24 veces más:/ – Ben