qstat – утилита для просмотра состояния очереди заданий. По команде «qstat -f» на экране выводится полный список задач с параметрами.

qsub – утилита для установки задачи в очередь на выполнение. По данной команде в очередь на выполнение будет поставлен сценарий оболочки, из которого происходит запуск самой вычислительной задачи. При постановке задачи на выполнение пользователь указывает требуемое количество ресурсов, а также дополнительные, параметры такие как рабочая директория, имена файлов вывода стандартных поток stdout и stderr, имена переменных для передачи в качестве системного окружения задачи и т.д. Полное описание ресурсов задачи можно получить по команде man pbs_resources, а описание атрибутов задачи – по команде man pbs_job_attributes.

Пример:

qsub script.sh

Синтаксис script.sh

#PBS -o $DIR/stdout.log

Определяет имя файла, в который будет перенаправлен стандартный поток stdout

#PBS -e $DIR/stderr.log

Определяет имя файла, в который будет перенаправлен стандартный поток stderr

#PBS -l nodes=8:ppn=2:cpp=1

Определяет, какое количество узлов и процессоров на них необходимо задействовать:

nodes – количество узлов;

ppn– число процессоров на узле;

cpp– число процессов на процессоре.

#PBS -l walltime=20:00:00

Определяет максимальное время счета задания

#PBS -l mem=4000mb

Определяет количество необходимой оперативной памяти

cat $PBS_NODEFILE | grep -v master | sort | uniq -c   | awk '{printf "%s:%s\n", $2, $1}' > $PBS_O_WORKDIR/temp.tmp

Составляет список узлов в необходимом формате, на которых будет запущена задача, и записывает их в файл temp.tmp

cd $PBS_O_WORKDIR

/usr/bin/mpirun.ipath -m temp.tmp –np 100 ./a.out

Запускает на узлах указанных в файле temp.tmp 100 копий параллельной программы.

Пример скрипта:

#PBS -o $DIR/stdout.log

#PBS -e $DIR/stderr.log

#PBS -l nodes=50:ppn=2

#PBS -l walltime=20:00:00

#PBS -l mem=4000mb

cat $PBS_NODEFILE | grep -v master | sort | uniq -c   | awk '{printf "%s:%s\n", $2, $1}' > $PBS_O_WORKDIR/script.mf

cd $PBS_O_WORKDIR

/usr/bin/mpirun.ipath -m script.mf -np 100 ./a.out

Здесь будет запущена параллельная программа a.out на 50 узлах, с каждого узла будет использоваться 2 процессора. Файл вывода стандартного потока stdoutstdout.log, стандартного потока stderrstderr.log. $DIR содержит путь к файлам stdout.log и stderr.log, например, может принимать значение /home/user_name. Под задачу отведено 20 часов. Необходимое количество памяти 1000 мегабайт.

Для запуска последовательной программы first.exe можно использовать следующий скрипт:

#PBS -o $DIR/stdout.log

#PBS -e $DIR/stderr.log

#PBS -l walltime=10:00

#PBS -l mem=100mb

./first.exe

При запуске программы через команду qsub заданию присваивается уникальный целочисленный идентификатор.

qsub script.sh

Starting MPI job under Torque resource manager...

20213.master.cyberia.tsu.ru

Здесь идентификатор задания 20213.

qdel – утилита для удаления задачи. В случае, если задача уже запущена, процесс ее работы будет прерван. Синтаксис данной утилиты следующий:

qdel [-W время задержки] идентификаторы задачи.

Выполнение такой команды удалит задачи с заданными идентификаторами через указанное время.

Более подробное описание синтаксиса команд можно получить, выполнив команду

man имя_утилиты.