2012-04-07 2 views
1

Я хочу запустить ряд тестов на многоядерной системе под управлением Linux. Я хочу зарезервировать один из ядер для своих тестов. Я знаю, что могу использовать sched_setaffinity, чтобы ограничить мои тесты этим ядром. Как я могу сохранить все остальные процессы отключен мой ядро? Другими словами, как я могу установить близость по умолчанию для всех процессов, чтобы не включать мое ядро?Как я могу изменить совместимость процессора по умолчанию в Linux?

ответ

1

Даже если вы оставите все остальные процессы вне вашего ядра «зарезервировано для бенчмаркинга», имейте в виду, что вы не можете помешать им использовать переменную и непредсказуемую долю ограниченной пропускной способности памяти для многоядерного чипа, и что вы не можете остановить их, предъявляя переменные требования к общим кэшам L2 и L3.

IMHO воспроизводимый, научный бенчмаркинг нуждается в машине все для себя.

+0

Это специальная машина, в которой нет ничего, кроме моих тестов. Тем не менее, я недостаточно знаком с Linux и достаточно хорошо знаком с Windows, чтобы знать, что в фоновом режиме работает несколько десятков системных процессов, над которыми я мало контролирую. Я пытаюсь свести к минимуму их влияние. –

+1

А я вижу; ОК, я предполагал, что вы пытаетесь вызвать какой-то ресурс на своем рабочем столе. Но лично я бы атаковал проблему, используя вместо этого приоритет планирования; просто запустите процесс бенчмаркинга с более высоким приоритетом, чем эти системные процессы. См. Также http://stackoverflow.com/questions/6957687/these-days-what-are-good-reasons-for-setting-thread-affinity-rather-than-leavin, в частности, мой комментарий к ответу Ариэля. – timday