Назад | Перейти на главную страницу

Настройте SGE для полного заполнения каждого узла вместо распределения заданий

Первоначально опубликовано на Stack Overflow по ошибке ... См. PS внизу для ответа на этот пост.

Я искал это некоторое время, но не могу найти ответа. У меня есть следующая проблема: предположим, у меня есть SGE с двумя компьютерами с 12 процессорами. У меня есть два задания с 1 ЦП, которые нужно отправить в сетку, но другие пользователи часто хотят отправлять задания с 12 ЦП. Это задания с общей памятью, которые нельзя разделить между несколькими машинами. Случается так, что иногда я отправляю свои две работы, и каждая из них отправляется на отдельную машину, оставляя каждый с 11/12 процессорами свободными. Это мешает другим запускать задания с 12 процессорами, пока я работаю.

Есть ли способ обойти это? Я знаю, что вы можете использовать правила заполнения для управления одним qsub (так что заполнение может заставить qsub с 12 процессорами либо оставаться на одной машине, либо разделяться между несколькими и т. Д.), Но есть ли сопоставимая настройка, чтобы заставить отдельные qsub уйти? к той же машине? Я также знаю, что могу явно запросить конкретную машину (я думаю, что это -h machinename или что-то подобное), но я бы предпочел иметь более надежную настройку, чем эта.

Любая помощь приветствуется. Спасибо!

PS: В сообщении о переполнении стека один ответ пришел до закрытия потока, предлагая использовать параллельную среду allocation_rule = $ fill_up. Если я не сделал что-то не так, попробовав это, я не думаю, что это решает проблему. Из того, что я видел при тестировании, если я установил fill_up, это означает, что процессоры, запрошенные ВНУТРИ одного qsub, по возможности помещаются в одну и ту же сетку, но процессоры из РАЗНЫХ qsub по-прежнему будут переходить на машину с низкой нагрузкой (или что-то еще сетка выбирает), и может перейти к пустой машине. Тестирование включало qsubbing нескольких одиночных заданий CPU, ожидание ~ 5 минут, а затем отправку еще нескольких. Хотя иногда первая группа оказывалась на одной и той же машине (я предполагаю, потому что загрузка машины происходит не в реальном времени, поэтому все они были отправлены на одну и ту же машину с низкой нагрузкой?), Но вторая группа не могла последовательно переходить на такая же машина что и в первой группе.

Планировщик по умолчанию load_forumla настройка np_load_avg который назначает новые задания узлам с наименьшей средней нагрузкой. Чтобы вместо этого он заполнял узлы, вы можете установить load_formula к слоты. Чтобы увидеть текущие настройки планировщика:

qconf -ssconf

Чтобы изменить настройки:

qconf -msconf