Мне нужно выполнить тесты производительности для моей параллельной программы, и мое требование состоит в том, чтобы она работала только на одном ядре процессора. (Я не хочу сотрудничать с потоками - я хочу всегда переключать контекст).
Итак, у меня есть два вопроса:
Лучшее решение - Как подписать и зарезервировать только одно ядро процессора только для моей программы (чтобы ОС не использовала это ядро процессора). Я думаю, что это невозможно, но, возможно, я ошибаюсь ...
Как настроить linux (Fedora 24) на использование только одного ядра процессора?
linux
cpu
parallelism
peter55555
источник
источник
Ответы:
В linux системный вызов для установки соответствия процессоров процессу
sched_setaffinity
. Тогда естьtaskset
инструмент, чтобы сделать это в командной строке.Чтобы эта единственная программа работала только на одном процессоре, я думаю, вы захотите что-то вроде
(установите любой номер процессора в качестве аргумента для
-c
коммутатора.)Это должно быть достаточно близко к однопроцессорной системе, если ваши другие процессы не работают слишком часто по сравнению с тем, который вы хотите измерить, или они запланированы для других процессоров. Если вы хотите , чтобы выделить один процессор для этого единого процесса только , и предотвратить другие процессы от работы на этом процессоре, вы должны установить их сродство тоже.
Это, я не знаю, как это сделать правильно. Вам нужно будет установить привязку к процессору в
init
самом начале процесса загрузки, чтобы убедиться, что он наследуется всем процессам в системе. В качестве обходного пути вы можете использоватьtaskset -c -p 0 $PID
все остальные процессы, чтобы заставить их работать только на CPU # 0.Systemd также
CPUAffinity=
контролировать сродство в единичных файлах и есть несколько из вопросов по настройке сродства по умолчанию здесь на unix.SE, но я не нашел ни с хорошим решением.Хотя, как @Kamil Maciorowski прокомментировал и ответил на другой вопрос на superuser.com , настройка
isolcpus=1
в командной строке ядра должна «изолировать этот ЦП от общих алгоритмов планирования», что вам может понадобиться.источник