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

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

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

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

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

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

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

решение1

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

qconf -ssconf

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

qconf -msconf

Связанный контент