КЛАСТЕР 

В НИВЦ МГУ производится поэтапная разработка системы управления заданиями. Просим пользователей обо всех проблемах и замечаниях сообщать по адресу support@parallel.ru.


О системе

Система управления заданиями Cleo предназначена для управления прохождением задач на многопроцессорных вычислительных установках (в том числе кластерных). Она позволяет автоматически распределять вычислительные ресурсы между задачами, управлять порядком их запуска, временем работы, получать информацию о состоянии очередей.

Основные возможности системы:

Другие особенности системы

1. Система написана на языке perl (для работы нужна версия 5.003 или выше), что дает ей высокую переносимость (большинство UNIX-систем), высокий уровень доверия к коду в силу его открытости и возможность независимого развития и дополнения системы.

2. Простота установки и использования, наличие документации для пользователей и администраторов, а также оперативные консультации по телефону и e-mail, делают систему доступной и удобной.

3. Гибкость настроек дает возможность приспособить систему практически к любой среде и политике администрирования.

4. Система сбора статистики дает возможность проводить как подробный, так и общий анализ работы.

5. Наличие пользовательских файлов конфигурации и чувствительность к переменным окружения позволяет рядовым пользователям настраивать параметры работы с системой "под себя".

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

7. Встроенные механизмы предсказания загрузки увеличивают эффективность использования всей вычислительной системы.

8. Веб-интерфейс дает возможность интерактивно отслеживать состояние системы.


Структура системы

Термины "очередь" и "подраздел" используются как синонимы. В настоящее время на кластере ANT сформированы три независимых подраздела: "long" (для длинных задач), "short" (для коротких задач), а также "2hdd" для задач, требующих два жёстких диска. По умолчанию во всех командах используется очередь, указанная в переменной QS_QUEUE. Значение этой переменной можно изменить в файле ~/.bash_profile командой "export QS_QUEUE=short".


Постановка задачи в очередь

Задача ставится в очередь командой mpirun, которая напоминает обычную команду запуска MPI-приложений:

     mpirun -np N [-q Q] [-maxtime T] [-p P] <программа с аргументами>

N - число процессоров, должно быть не более разрешенного числа процессоров для одной задачи. Q - это очередь, куда будет поставлена задача. T - это максимальное время работы задачи в минутах. P - приоритет задачи в очереди.

Реально задача начнет выполняться, как только она будет на верхушке очереди и будут свободны N процессоров. Система автоматически подбирает свободные узлы (процессоры) для запуска задачи. Гарантируется, что на каждом узле будет запущено не более прикладных процессов, чем реально доступно процессоров (2). Если задача поставлена в очередь, система выдает подтверждение и присваивает задаче уникальный номер (ID).

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


Пояснение к системе приоритетов

Задачи с большим приоритетом будут идти на счет раньше задач с меньшим приоритетом. Приоритет обычных задач по умолчанию равен 10. Если для Вас не важно, чтобы задача пошла на счет как можно быстрее и Вы считаете целесообразным уступить очередь другим пользователям, Вы можете уменьшить значение приоритета. Например:

    mpirun -np 32 -p 8 cg.A.32

Эта задача со значением приоритета 8 пойдет на счет не раньше, чем пойдут на счет все задачи с приоритетами 9 и 10.

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

    chpri -p <приоритет> -n <номер задачи>

Для чего нужно указывать предельное время?

Параметр -maxtime устанавливает предельное время работы задачи в минутах. Просим Вас обязательно указывать этот параметр для всех задач. Это поможет нам оптимально планировать работу кластера и поможет другим пользователям ориентироваться при постановке задач в очередь. По умолчанию будет устанавливаться очень небольшое предельное время. Учтите, что при истечении предельного времени задача будет сниматься со счета.

Например, пусть на кластере свободно 8 процессоров, а в очереди уже стоит задача на 32 процессора (но все 32 процессора в ближайшие 7 часов не освободятся). Тогда если поставить в очередь короткую 4-процессорную задачу, указав максимальное время:

    mpirun -np 4 -maxtime 10 program

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

Просим Вас разумно пользоваться возможностями системы и проявлять уважение к другим пользователям.


Просмотр состояния очереди

Посмотреть текущее состояние очереди можно командой:

	tasks [параметры]

Сначала показываются работающие в данный момент задачи, а затем ожидающие, в т.ч. заблокированные.

Команда tasks поддерживает следующие параметры:

-q <очередь>
Просмотр заданной очереди на текущем кластере. Если параметр не задан, в качестве имени очереди берется значение переменной среды QS_QUEUE.

-l Просмотр расширенной информации о задачах.


Просмотр результатов

По окончании работы задачи пользователю выдается сообщение на терминал (в дальнейшем будет организовано также оповещение по электронной почте). Выдача программы помещается в файл в рабочей директории с именем <задача>.out-<номер>. Кроме того, создается файл отчета <задача>.rep-<номер>, где указываются следующие данные: командная строка при запуске задачи, число процессоров, код возврата, имя выходного файла, рабочая директория, астрономическое время работы программы, имена узлов, на которых была запущена программа. Имена файла отчета и выходного файла можно настраивать в конфигурационом файле.


Удаление задачи

Удалить свою задачу, стоящую в очереди или выполняющуюся, можно командой:

	tasks [-q <очередь>] -d ID

Удалить все свои задачи можно командой:

	tasks [-q <очередь>] -d all

Для команды "tasks -d" также предусмотрена более короткая форма - "qd".


Конфигурационный файл

Некоторые параметры своей работы с системой задаются в конфигурационном файле ".qconf" в домашней директории пользователя. В настоящее время в этом файле определяются следующие переменные:

      repfile    =  <имя файла отчета>
      outfile    =  <имя выходного файла>
      one_report =  0 или 1

Переменная one_report по умолчанию равна 0, т.е. если выходные файлы задачи уже существовали, к их имени будут добавляться номера (например, task.out.1, task.rep.2 и т.д.). Если она установлена в 1, все выходные файлы от одной задачи будут записываться в один файл (т.е. уже имеющиеся файлы будут уничтожаться).

В именах файлов выше можно ипользовать переменные:

По умолчанию, используются следующие настройки:

      repfile    = $sexe.rep-$id
      outfile    = $sexe.out-$id
      one_report = 0