Вы можете привязать определенный поток процесса к произвольному ядру (при условии, что вы используете Linux).Это работает не только для Python, но и для любого процесса.Я сделал скрипт на python, чтобы показать, как вы можете это сделать.
Вы можете получить идентификаторы потоков с помощью команды ps
: [user @ dev ~] $ ps -Lo pid,% cpu, lwp -p {pid} Вывод для меня:
PID %CPU LWP
28216 98.0 28216
28216 0.0 28217
28216 0.0 28218
Здесь 28216 - это PID процесса, в то время как вы можете видеть, что в простом скрипте Python работают другие потоки.
Теперь вы можете назначить поток дляконкретное ядро через taskset
taskset -cp 0-5 28218
Будет показано следующее:
pid 28218's current affinity list: 0-11
pid 28218's new affinity list: 0-5
Затем вы можете заметить, что некоторые потоки связаны с различным набором процессоров:
[user@host ~]$ taskset -cp 28218
pid 28218's current affinity list: 0-5
[user@host ~]$ taskset -cp 28217
pid 28217's current affinity list: 0-11