Как назначить разные ядра ЦП для разных процессов?

7

Я использую Ubuntu Server Edition 11.10, и у меня есть две чрезвычайно интенсивные программы с процессором, работающие на одном ядре. Ни один из этих процессов не был запрограммирован для многоядерной обработки. Есть ли способ, с помощью которого я могу сказать, что процесс A запускается на Core 1 и процесс B для работы на Core 2?

    
задан Otoris 23.03.2012 в 20:25
источник

2 ответа

6

Принятый ответ может быть хорошим советом, но это, безусловно, не ответ на ваш вопрос. Ваш вопрос не указывает мне, что вы также не можете услышать ответ, на самом деле это звучит как хороший пример ситуации, в которой вы хотели бы конкретно указать, какие процессоры должны что-то делать.

Подходя к точке, то, что вы хотите, это наборы процессоров. Они поддерживаются в 11.10 Ubuntu, поскольку он использует достаточно недавнее ядро Linux. Я считаю, что Linux 2.6 требуется.

Здесь вы можете прочитать справочную страницу для cpuset: Ссылка

Вот еще одна страница для общего чтения: Ссылка

Linux может быть «отлично» при решении вопроса о распределении процессорного времени, но это не идеально.

    
ответ дан GoldenNewby 24.03.2012 в 01:25
источник
2

Надеюсь, это не получится грубо, но если вы зададите этот вопрос, вы даже не должны его рассматривать. Это одна из тех вещей, которые Linux очень хорошо разбирается в себе. Если вы это сделаете, это, скорее всего, окажет очень негативное влияние на производительность. Даже если программа не предназначена для использования большего количества процессоров, Linux будет перемещать их в разные ядра по мере необходимости. Программа не заметит.

Возможно, вы захотите присвоить им как низкое значение nice с помощью команды nice , чтобы придать им более высокие приоритеты.     

ответ дан Jo-Erlend Schinstad 23.03.2012 в 22:06