Работа выполняется при поддержке РФФИ, грант N 02-07-90442. |
Система управления заданиями Cleo
Что это.
Система Cleo предназначена для эффективного управления ресурсами
вычислительных кластеров. Система организует поток вычислительных заданий в одну или несколько очередей и позволяет управлять порядком их выполнения на кластерах.
Возможности.
Cleo позволяет:
- управлять прохождением задач(поддерживаются все реализации MPI и других параллельных систем)
- гарантировать завершение задач на узлах
- автоматически блокировать зависшие вычислительные узлы
- автоматически распределять свободные процессоры между задачами
- управлять политикой использования кластера различными пользователями
- устанавливать для пользователей лимиты использования кластера (число занятых процессоров, время работы задач, и т.п.)
- предоставлять информацию о работе задач на кластере (с помощью дополнительного пакета qs-web, входящего в дистрибутив)
- расширять возможности системы за счёт внешних модулей и планировщиков
Требования.
Для работы Cleo необходимы: perl версии 5.6 или выше с модулями Storable, Fcntl, Time, POSIX и IO, ОС Linux 2.4 или выше.
Структура.
Система Cleo включает в себя:
- сервер, управляющий очередями
- агент, работающий на вычислительных узлах
- программы-клиенты, позволяющие управлять задачами
Для постановки задачи в очередь не нужно готовить специальных файлов, описывающих задание. Достаточно воспользоваться, например, программой-заменой стандартного mpirun, входящей в состав дистрибутива.
|
mpirun -np 4 my_program arg1 arg2 |
Просмотр состояния очередей осуществляется с помощью команды tasks или через web-интерфес.
|
> tasks
Queue: main
Running: 1; Queued: 0; Pre-runned: 0; Free: 8 of 9+1 (0 blocked)
Running:
ID : User: NP: Time : Timelimit: Task
1635 : user1: 2: 20:07:41 :Mar 25 15:25:39: my_task
|
Для удаления задачи можно воспользоваться командой tasks с ключом -d:
Набор команд для администраторов кластера:
- cleo-priority - сменить приоритет задачи. Данная команда доступна и пользователям
- cleo-blocktask - заблокировать или разблокировать задачу(задачи). Данная команда доступна и пользователям
- cleo-autoblock - установить политику автоматической блокировки новых задач для группы пользователей
- cleo-blockcpu - заблокировать или разблокировать процессор(ы)
- cleo-mode - узнать или сменить режим работы системы
- cleo-stat - генерация статистики использования кластеров
Очереди могут быть как независимыми, так и подчинёнными. Например, рассмотрим такую иерархию очередей:
main |
long |
short |
cpu1 | cpu2 | cpu3 | cpu4 | cpu5 |
cpu6 | cpu7 | cpu8 | cpu9 | cpu10 |
Здесь очереди long и short независимы - любые задачи поставленные в одну из них, не влияют на другую. Но обе они являются дочерними по отношению к очеред main.
Любая задача, поставленная в очередь main, перед запуском будет помещена в дочерние очереди, если в родительской очереди нет свободных, не разделяемых с дочерними очередями, процессоров. Как только в дочерних очередях под эту задачу освободится нужное число процессоров, задача будет запущена.
В стандартном планировщике Cleo реализован алгоритм быстрого запуска "коротких" задач. Если в какой-то момент свободно несколько процессоров, но очередным задачам этого количества недостаточно для запуска, то может быть запущена задача, стоящая после них (может быть в самом "хвосте" очереди). Это возможно при условии, что этой задаче хватает свободных процессоров для запуска и лимит времени её работы таков, что она завершится раньше, чем запланировано освобождение новых процессоров.
Более подробно возможности Cleo описаны в документации.
Здесь можно получить последнюю версию системы (5.0)
|