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

StackOverflow https://stackoverflow.com//questions/25021117

Вопрос

Я пытаюсь запустить задания qsub в кластере SGE (Sun Grid Engine), который поддерживает максимум 688 заданий.Я хотел бы знать, есть ли способ узнать общее количество заданий, которые в настоящее время выполняются в кластере, чтобы я мог отправлять задания на основе текущей нагрузки кластера.

Я планирую сделать что-то вроде:подождите 1 минуту и ​​снова проверьте, не превышает ли количество заданий в кластере <688, а затем отправьте задания дальше.

И просто чтобы уточнить, мой вопрос касается знания общего количества вакансий, представленных в кластере, а не только тех вакансий, которые я отправил в настоящее время.

Заранее спасибо.

Это было полезно?

Решение

Вы можете использовать qstat, чтобы перечислить задания всех пользователей; Это с awk и wc можно использовать для выявления общего количества заданий в кластере:

qstat -u "*" | awk '{if ($5 == "r" || $5 == "qw") print $0;}' | wc -l
.

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

Однако кластерные Sysadmins могут запретить пользователям проверить работу, которые не принадлежат им. Вы можете проверить, можете ли вы увидеть работу других пользователей, запустив:

qstat -u "*"
.

Если вы точно знаете, что другой пользователь работает на задании, и все же вы не можете видеть его во время работы вышеуказанной команды, наиболее вероятно, что SYS Admins отключится на эту опцию.

Поспомина: от моего понимания, вы просто обычный пользователь кластера - почему вы даже беспокоитесь о том, чтобы отправить работу таким образом. Почему бы вам не представить все хочее задание, и если кластер не может запланировать работу, она просто поставит их в состояние qw и расплатит их, когда SGES SELE SEES является наиболее подходящим временем.

Другие советы

В зависимости от того, как настроен кластер, использование массива заданий (-t вариант для qsub) обойдет этот предел.

У меня установлены аналогичные ограничения на максимальное количество заданий, которые может отправить один пользователь.Это ограничение относится к отдельным экземплярам qsub и ни один массив заданий не отправляет потенциально много задач (этот предел устанавливается через другую переменную конфигурации, max_aj_tasks).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top