1 1 Torque: использование

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

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

  1. Использовались три вычислительных узла.
  2. На каждом из которых мы займем по одному доступному процессору.
  3. Задача должна выполнятся не более 10 часов (по истечении которых она должна быть снята со счета).
  4. На вычислительных узлах должно быть доступно не менее 100Мб оперативной памяти.
  5. О событиях запуска задачи и ее завершения (с ошибкой или без) мы должны быть уведомлены сообщением, направленным на нашу электронную почту.

Для описания такой задачи создадим следующий скрипт (назовем его flops.pbs):

#!/bin/sh
#
#PBS -l nodes=supergate:ppn=1+2:ppn=1
#PBS -N Flops_TEST
#PBS -m abe
#PBS -M yuri@linux-ekb.info
#PBS -l pmem=100mb
#PBS -l pcput=10:00:00
cd /home/mpiuser/mpi
mpirun ./flops

Количество задействованных процессоров мы описываем параметром nodes=supergate:ppn=1+2:ppn=1. Причем указываем (это важно!) что первым узлом нашей параллельной задачи будет хост supergate. Именно так мы назвали нашу консоль кластера. Кроме него задаче будет выделено еще 2 узла. Для каждого из этих трех узлом мы запрашиваем по одному процессору (ppn=1).

Параметр -N Flops_TEST - это просто название нашей задачи. Так она будет отображена в очереди задач.

Параметры -m abe и -M yuri@linux-ekb.info указывают, какие должны быть уведомления и куда их посылать.

Последние два параметра (pmem=100mb и pcput=10:00:00) должны быть понятны. Это запрашиваемый размер оперативной памяти и максимальное время исполнения программы.

Остальные строчки скрипта - это собственно задача, которая должна быть исполнена на кластере: переход в каталог с программой и запуск ее на параллельное исполнение скриптом OpenMPI.

Запсук задания, точнее размещение его в очереди на исполнение, осуществляется командой qsub, единственным параметром которой будет имя нашего скрипта:

qsub flops.pbs

Ранее мы рассматривали способ запуска параллельной программы в среде OpenMPI, и там в качестве одного из параметров команды запуска указывался файл со списком вычислительных узлов кластера. При использовании менеджера ресурсов Torque этот параметр не нужен. Конфигурацию кластера и список узлов диспетчер OpenMPI берет непосредственно из Torque.

Стандартные потоки вывода (STDOUT, STDERR) после завершения программы вы можете найти в том каталоге, из которога программа была запущена, в файлах с именами Flops_TEST.o45 и Flops_TEST.e45. Цифры - это номер очереди для нашей задачи, а название перед расширением - это то имя, которое мы указали в нашем скрипте запуска.


Copyright © 1998-2011 Юрий Сбитнев