Formas de aislar CPU entre diferentes procesos

Formas de aislar CPU entre diferentes procesos

Estoy realizando pruebas de velocidad entre diferentes versiones de la misma aplicación. Quiero poder asignar un conjunto fijo de CPU a cada aplicación. Por ejemplo, quiero ejecutar la aplicación exactamente en dos CPU y no más. También quiero que estos dos CPU sean exclusivos de este proceso para que ningún otro proceso pueda "robar" tiempo de CPU y reducir la puntuación de la prueba.

¿Hay alguna manera de hacer esto en Linux? He oído hablar de cgroups, contenedores y Docker. ¿Serán de alguna ayuda? Además, ¿qué enfoque es el más simple (no necesariamente el más fácil de usar) y cuál me da mayor control?

También estoy un poco preocupado por el hiperprocesamiento. Si asigno una única CPU lógica a este proceso de prueba y otro proceso tiene un hiperproceso durante la prueba, ¿no empeorará esto el resultado de la prueba? Entonces también necesitaría separar cpus por cpus físicos.

información relacionada