Вы здесь

Основные принципы построения очередей при запуске задач на счет

ВНИМАНИЕ! Данный раздел содержит информацию об организации системы очередей для кластеров. Просьба к пользователям внимательно ознакомиться с его содержанием и соблюдать правила постановки в очередь задач. Нарушение указанных правил может привести к тому, что Ваша задача будет вечно стоять в очереди и НИКОГДА не запустится.

Все задачи пользователей делятся на три категории – отладочные, пакетные и фоновые.

Отладочные задачи – это короткие по времени задачи, которые запускаются исключительно в целях отладки.

Пакетные задачи – это средние по времени задачи, которые производят реальные расчеты и выполняются, не прерываясь.

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

Планирование очередей в каждый момент времени производится в соответствии с параметрами текущего режима планирования. Режим планирования определяется следующими параметрами:

  • дата и время включения режима;

  • максимальное время, отведенное для отладочных задач;

  • максимальное время, отведенное для пакетных задач;

  • число процессоров, которые «резервируются» для отладочных задач;

  • границы приоритетов пользователей.

Рассмотрим каждый параметр подробнее.
Дата и время включения определяют время, начиная с которого параметры режима вступают в силу. Параметры режима действуют вплоть до включения следующего режима.
Максимальное время, отведенное для отладочных задач, определяет время счета отладочной задачи. Если пользователь хочет сообщить системе, что его задача отладочная, то он должен указать для задачи время счета, не превышающее значение максимального времени для отладочных задач. При превышении данного значения задача автоматически будет считаться пакетной.
Максимальное время, отведенное для пакетных задач определяет время счета для пакетной задачи. ВНИМАНИЕ! Пакетные задачи, время которых превышает максимальное отведенное для пакетных задач, не будут включены в счет в текущем режиме. ЕСЛИ ВЫ ХОТИТЕ СЧИТАТЬ ДОЛГО, ДЕЛАЙТЕ ЗАДАЧУ ФОНОВОЙ!
Число процессоров, которые «резервируются» для отладочных задач. Все пакетные задачи в сумме не могут занимать процессоров больше, чем разность между общим числом процессоров и значением данного параметра. При этом процессоры числом, указанным в данном параметре, в текущем режиме будут использоваться только для счета отладочных задач («резервируются»). Подчеркнем, что «резервируются» не конкретные процессоры или вычислительные модули. Система гарантирует, что определенное в данном параметре число процессоров не будет использовано для счета пакетных задач, а какие конкретно процессоры попадут в это число, зависит от текущей ситуации. Данный параметр введен для дневных режимов, чтобы обеспечить постоянное наличие свободных процессоров для отладочных задач.
Границы приоритетов пользователей. Задачи планируются системой согласно приоритетам пользователей, т.е. задача пользователя с высоким приоритетом может посчитаться раньше, чем задача пользователя с низким приоритетом. Приоритет пользователя определяется по указанной шкале и напрямую зависит от суммарного времени счета пользователя за учетный период. Например, если границы имеют следующий вид:

  (120  300  600  1200  0)

то это означает, что наивысшим приоритетом (очередь 0) будут обладать задачи пользователей, которые за учетный период считали менее 120 минут, чуть меньшим (очередь 1) приоритетом – тех, кто считал менее 300 минут, еще меньшим (очередь 2) – тех, кто считал менее 600 минут и т.д. Низшим для данного режима (очередь 4) приоритетом будут обладать задачи пользователей, считавших более 1200 минут. При вычислении приоритета задачи учитывается заказываемое пользователем ее время счета. Последний ноль означает «конец списка». ВНИМАНИЕ! При вычислении приоритета задачи учитывается заказываемое пользователем ее время счета. Размер учетного периода определяется администратором системы.

Планировщик пытается выделить процессоры из числа свободных сначала для счета задач из очереди 0, потом — из очереди 1 и т.д. Внутри одной очереди ресурсы выделяются в порядке (от меньшего к большему) номеров в списке задач, в котором находятся все считающиеся и ждущие задачи. Если свободных процессоров для текущей задачи нет, определяется момент, когда нужное число процессоров будет доступно, и устанавливается время старта данной задачи. Никакая менее приоритетная задача не может занять процессоры так, что это бы отодвинуло старт более приоритетной. Однако следует понимать, что при отсутствии конфликта по ресурсам менее приоритетная задача может стартовать раньше более приоритетной. В случае конфликта по ресурсам опережающий старт менее приоритетной задачи возможен лишь, если ее время счета таково, что она освободит ресурсы раньше запланированного старта более приоритетной.

Планирование фоновых задач осуществляется следующим образом. Пользователь должен указать квант для фоновой задачи. Система гарантирует, что если фоновая задача была выбрана на счет, то ей будет дано для счета время, не меньшее указанного кванта. По истечении кванта задача может быть снята системой со счета и заново поставлена в очередь. ВНИМАНИЕ! Организацию контрольных точек и повторного старта должен обеспечить сам пользователь. Это означает, что при повторном старте фоновой задачи система не восстанавливает состояние вычислений данной задачи. Дополнительно можно воспользоваться комплексом подпрограмм, созданных для облегчения организации гарантированного сохранения промежуточных результатов (Библиотека поддержки контрольных точек)

Если указанный пользователем квант не превышает максимального времени для отладочных задач, то его фоновая задача может быть включена в решение наряду с прочими отладочными задачами. Приоритет фоновой задачи зависит от типа расписания, сгенерированного администратором. В одном варианте приоритет фоновой задачи рассчитывается так же, как и обычной задачи, что может приводить к некоторым ошибкам в прогнозе запуска задач. В другом варианте дается более точная оценка времени запуска задач, но приоритет фоновой задачи при этом ниже обычной (очередь 6) и не зависит от приоритета владельца.

Если указанный пользователем квант не превышает максимального времени для пакетных задач, то фоновая задача планируется, как пакетная. Она уже не сможет занимать процессоры, «зарезервированные» для отладочных задач. При превышении квантом максимального времени для пакетных задач фоновая задача не сможет войти в счет в текущем режиме.