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 процессора. Файл вывода стандартного потока stdout — stdout.log, стандартного потока stderr — stderr.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 имя_утилиты.