| КЛАСТЕР | ![]() ![]() |
В НИВЦ МГУ производится поэтапная разработка системы управления заданиями. Просим пользователей обо всех проблемах и замечаниях сообщать по адресу support@parallel.ru.
Система управления заданиями Cleo предназначена для управления прохождением задач на многопроцессорных вычислительных установках (в том числе кластерных). Она позволяет автоматически распределять вычислительные ресурсы между задачами, управлять порядком их запуска, временем работы, получать информацию о состоянии очередей.
1. Система написана на языке perl (для работы нужна версия 5.003 или выше), что дает ей высокую переносимость (большинство UNIX-систем), высокий уровень доверия к коду в силу его открытости и возможность независимого развития и дополнения системы.
2. Простота установки и использования, наличие документации для пользователей и администраторов, а также оперативные консультации по телефону и e-mail, делают систему доступной и удобной.
3. Гибкость настроек дает возможность приспособить систему практически к любой среде и политике администрирования.
4. Система сбора статистики дает возможность проводить как подробный, так и общий анализ работы.
5. Наличие пользовательских файлов конфигурации и чувствительность к переменным окружения позволяет рядовым пользователям настраивать параметры работы с системой "под себя".
6. Используя приоритеты и блокировки можно оперативно управлять состоянием очереди и порядком прохождения заданий.
7. Встроенные механизмы предсказания загрузки увеличивают эффективность использования всей вычислительной системы.
8. Веб-интерфейс дает возможность интерактивно отслеживать состояние системы.
Термины "очередь" и "подраздел" используются как синонимы. Список очередей на кластере "Чебышёв" можно посмотреть на странице "Текущая конфигурация кластера" По умолчанию во всех командах используется очередь, указанная в переменной QS_QUEUE. Значение этой переменной можно изменить в файле ~/.bash_profile командой "export QS_QUEUE=queue_name".
Задача ставится в очередь командой mpirun, которая напоминает обычную команду запуска MPI-приложений:
mpirun -np N [-q Q] [-maxtime T] [-p P] <программа с аргументами>
N - число процессоров, должно быть не более разрешенного числа процессоров для одной задачи. Q - это очередь, куда будет поставлена задача. T - это максимальное время работы задачи в минутах. P - приоритет задачи в очереди.
Если Вы используете mpich, openmpi или Intel MPI, то укажите до имени задачи ключ -as mpich, -as openmpi или -as intel соответственно.
Для запуска задач MPI+OpenMP или в случае, когда Вы не хотите запускать задачу на всех ядрах узла, Вы можете использовать ключ -t ppn=N, где N - число ядер, на узел, на котором будут запущены MPI-процессы. Для MPI+OpenMP задач обычно используется ppn=1 - в этом случае на каждом узле запускается один MPI-процесс.
Реально задача начнет выполняться, как только она будет на верхушке очереди и будут свободны N процессоров. Система автоматически подбирает свободные узлы (процессоры) для запуска задачи. Гарантируется, что на каждом узле будет запущено не более прикладных процессов, чем реально доступно процессоров (2). Если задача поставлена в очередь, система выдает подтверждение и присваивает задаче уникальный номер (ID).
После постановки задачи в очередь пользователь может отключиться от терминала, а затем в любой момент подключиться к системе и просматривать результаты прежде запущенных задач.
Задачи с большим приоритетом будут идти на счет раньше задач с меньшим приоритетом. Приоритет обычных задач по умолчанию равен 10. Если для Вас не важно, чтобы задача пошла на счет как можно быстрее и Вы считаете целесообразным уступить очередь другим пользователям, Вы можете уменьшить значение приоритета. Например:
mpirun -np 32 -p 8 cg.A.32
Эта задача со значением приоритета 8 пойдет на счет не раньше, чем пойдут на счет все задачи с приоритетами 9 и 10.
Если для Вас, наоборот, требуется посчитать задачу как можно быстрее, то Вы можете обратиться к нам с просьбой увеличить значение приоритета Вашей задачи. Самостоятельно повысить приоритет своей задачи более чем до 10 Вы не можете. Можно изменить приоритет задачи, стоящей в очереди, с помощью команды
cleo-priority <приоритет> <номер задачи> [<номер задачи> ...]
Параметр -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