Система управления заданиями на вычислительных кластерах

Общая характеристика системы PBS

При запуске задания на вычислительных узлах кластера необходимо указывать список узлов, на которых будет выполняться задание. Этот список формируется либо непосредственно в командной строке запускающей команды, либо в командной строке указывается имя файла, содержащего список узлов. Такой запуск задания называется прямым запуском. Прямой запуск заданий имеет множество недостатков. Во-первых, он не позволяет буферизовать задания, во-вторых,в таком подходе на пользователя возлагается обязанность определять свободные в данный момент узлы и из этого набора выделять узлы для запуска своего задания. Но, даже если пользователь определил каким-то образом список свободных на данный момент узлов, то может оказаться, что пока он готовил свой файл со списком, ситуация на кластере уже изменилась. Зачастую, это приводит к тому, что какие-то узлы оказываются перегружеными процессами, а какие-то в это время простаивают. Очевидно, что наиболее разумным подходом является автоматизация выделения узлов каждому заданию. Как правило, эта функция возлагается на диспетчерские системы.

Для управления заданиями на высокопроизводительных вычислительных системах используется различные диспетчерские системы, назначение которых предоставить вычислительные ресурсы для задачи и осуществлять контроль над процессом выполнения задания. Как правило, все диспетчерские системы построены таким образом, что они устанавливают признак «занято» для тех узлов, на которых уже выполняется какое-то задание и, если для вновь поступившего задания нет свободных ресурсов, то оно буферизуется и ставится в очередь. Кроме того, диспетчерские системы позволяют проводить некоторую политику лимитов. К таким лимитам относятся – количество одновременно запущенных одним пользователем заданий; максимальное количество узлов, которое может одновременно захватить один пользователь; максимальное время решения задания и т. д. Наиболее широкое распространение на сегодняшний день получили различные реализации системы PBS (Portable Batch System). Имеются как коммерческие реализации, например, Altair® PBS Professional™ 7.0 , так и Open Source продукты – OpenPBS, Torque. Основные характеристики системы:

PBS состоит из четырех основных модулей, каждый из которых может устанавливаться на одном или нескольких вычислительных узлах, обслуживаемых системой:

Конфигурация PBS на кластерах ЦКП ВВ ЮФУ

В настоящее время системой PBS в суперкомпьютерном центре ЮФУ обслуживаются следующие вычислительные ресурсы:

В соответствии с этим создано три очереди, по одной для каждой архитектуры с именами TP, IBMX, WSD. Внутри каждой из очередей дополнительного разбиения (например, по времени решения задачи) не сделано. Используется устанавливаемый по умолчанию планировщик FIFO (первый вошел первый вышел), сконфигурированный для эксклюзивного выполнения одного счетного процесса на каждом из узлов. PBS автоматически распределяет задания по свободным узлам заданной архитектуры.

Каждую из программ, запускаемую на кластере можно отнести к одному из четырех типов.

  1. Обычная однопроцессорная последовательная программа занимает один узел и задействует одно ядро, и ни каким образом не может использовать дополнительные ядра.
  2. Параллельная многонитевая OpenMP программа. Занимает один узел и задействует несколько ядер. По умолчанию захватывает все ядра узла. Не всегда использование программой всех ядер в узле позволяет получить максимальную производительность. Регулируется количество ядер занимаемых программой переменной окружения OMP_NUM_THREADS. Она может быть задана либо в конфигурационном файле пользователя .bashrc или в запускающем скрипте.
  3. Параллельная многоузловая MPI программа. Захватывает несколько узлов, в каждом из которых может быть задействовано либо одно, либо несколько ядер. (Это возможно, если на узле запускается несколько MPI процессов. Например, можно заказать 2 узла, но командой mpirun запустить 4 процесса).
  4. Гибридная многоузловая многонитевая MPI+OpenMP программа. Захватывает несколько узлов, в каждом из которых может быть задействовано несколько ядер (путем выполнения многонитевого процесса). Для таких программ только эмпирическим путем можно установить оптимальное число нитей на узле.

Назад    Вперед