Я хочу запустить ряд тестов на многоядерной системе под управлением Linux. Я хочу зарезервировать одно из ядер для своих тестов. Я знаю, что могу использовать sched_setaffinity
, чтобы ограничить свои тесты этим ядром. Как я могу отключить все другие процессы от моего ядра? Другими словами, как я могу установить сходство по умолчанию для всех процессов, чтобы не включать мое ядро?
Как я могу изменить привязку процессора по умолчанию в Linux?
Ответы (1)
Даже если вы отключите все остальные процессы от своего «зарезервированного для бенчмаркинга» ядра, имейте в виду, что вы не можете помешать им использовать переменную и непредсказуемую долю ограниченной пропускной способности памяти для многоядерного чипа, и что вы можете не мешать им предъявлять переменные требования к общим кешам L2 и L3.
ИМХО, для воспроизводимого научного бенчмаркинга нужна машина сама по себе.
person
timday
schedule
07.04.2012
Это выделенная машина, на которой работают только мои тесты. Однако я достаточно не знаком с Linux и достаточно хорошо знаком с Windows, чтобы знать, что в фоновом режиме работает несколько десятков системных процессов, над которыми у меня мало контроля. Я пытаюсь свести к минимуму их влияние.
- person Nathan Fellman; 08.04.2012
Ах я вижу; Хорошо, я предполагал, что вы пытаетесь ограждать какой-то ресурс на своем рабочем столе. Но лично я бы решил проблему, используя вместо этого приоритет планирования; просто запустите процесс бенчмаркинга с более высоким приоритетом, чем эти системные процессы. См. также stackoverflow.com/questions/6957687/, особенно мой комментарий к ответу Ариэля.
- person timday; 08.04.2012