PBSMan
From HPCC
На кластері встановлений локальний менеджер ресурсів Torque версії 2.3.6 з планувальником задач Maui 3.2.6.
Зміст |
Попередні налаштування
Для коректної роботи з Torque потрібно виконати ряд підготовчих операцій:
- Налаштувати між вузлами ssh-автентифікацію за ключами.
- Додати у конфігураційний Вашого shell (за замовчуванням bash - $HOME/.bashrc) наступний рядок:
PATH=$PATH:/opt/torque/bin
Тестування
Після наведених дій, можна спробувати запустити тестову задачу. Для локальних користувачів призначена черга local , яку треба явно вказати за допомогою параметру -q команди постановки задачі qsub. В якості тіла завдання, виконаємо команду hostname, що виведе назву хоста, на якому запуститься задача.
[test1@n001 ~]$ qsub -q local hostname 107.pbs.kpi
(Після введення 'hostname' потрібно натиснути Enter і Ctrl-D)
107.pbs.kpi - ідентифікатор завдання у локальній системі, за яким можна за ним слідкувати.
Майже одразу таке коротке завдання завершується і у директорії, з якої воно було поставлене, з'являються вихідні файли:
[test1@n001 ~]$ ls STDIN.e107 STDIN.o107 [test1@n001 ~]$ cat STDIN.* n094 [test1@n001 ~]$
Як видно, задача виконувалась на вузлі 94.
Команди для роботи з системою керування задачами
Для користувача корисними будуть наступні інструменти роботи з менеджером Torque: qsub, qstat, qalter, qhold, qrls, qdel. Коротко розглянемо роботу з ними.
qsub
Команда призначена для встановлення задачі у чергу. Подтримується як режим вводу параметрів задачі через опції qsub із читанням тіла задачі із стандартного вводу (як у вищенаведеному прикладі), так і повний опис задачі в окремому файлі.
- Найважливіші опції
- -q <назва черги>
Задає чергу, до якої треба помістити задачу. Наразі в якості імені треба вказувати "local"
- -l <специфікація потрібних ресурсів>
Дозволяє визначити необхідні для виконання задачі ресурси. Задавати їх слід у формі назва_ресурсу=значення,назва_ресурсу=значення... Найуживаніші: * cput - максимальна кількість процесорного часу, використовуваного всіма процесами задачі * nodes - кількість вузлів, резервованих для задачі. Підтримується вказання атрибутів вузлів, як то кількість процессорів на вузол. * walltime - максимальна кількість реального часу, під час якого задача може знаходитись у стані виконання * pmem - максимальна кількість пам'яті для одного процесу задачі
- -o <назва файлу>
Шлях до файлу, в який зберігається стандартній потік виводу задачі
- -e <назва файлу>
Шлях до файлу, в який зберігається стандартній потік помилок задачі
- -k o|e|oe|n
Вказує менеджеру не копіювати файли виводу на вузол, з якого задача була поставлена. Натомість, вони залишаються на вузлі, на якому відбувалось виконання задачі.
- -t <список>
Зручна можливість запускати масив задач. Без даної опції процес виконання задачі має такий вигляд: # задача ставиться в чергу # відповідно до специфікації ресурсів обираються вузли, на яких задача буде виконуватись # скрипт задачі запускається на одному з вузлів із встановленими змінними середовища, які дозволяють дізнатись список виділених ресурсів. # далі за розподіл навантаження відповідає сам скрипт задачі Така модель запуску типова, якщо, наприклад, запускається програма з використанням бібліотеки для паралельних обчислень (OpenMPI). Однак вона не завжди зручна. Наприклад, потрібно запустити одну непаралельну задачу, але з різними наборами вхідних даних. Тоді в пригоді стає дана опція. Вона інструктує менеджер задач, що потрібно запустити вказану кількість екземплярів скрипта задачі на виділених ій ресурсах. При цьому кожен екземпляр отримує через змінну середовища PBS_ARRAYID свій порядковий номер, що може використовуватись для вибору вхідніх даних.
Приклади
Запуск масиву з 5 задач, кожній з яких потрібно 4 процесора на вузлі, тіло задачі читається зі стандартного вводу.
[test1@n001 ~]$ qsub -q local -t 1-5 -l nodes=1:ppn=4 hostname 122.pbs.kpi
Запуск задачі за допомогою файлу опису задачі.
Вхідний файл має наступний вигляд:
#!/bin/bash #PBS -l nodes=1:ppn=4 #PBS -S /bin/bash #PBS -N test #PBS -o job.out #PBS -e job.err echo Running on host `hostname` echo Time is `date` echo Directory is `pwd` echo This jobs runs on the following processors: echo `cat $PBS_NODEFILE` echo $PBS_NODEFILE
У вигляді рядків-коментарів для програми-інтерпретатора даного скрипта із префіксом PBS задаються ті ж самі опції, які приймає команда qsub. Файл повинен мати права, що дозволяють його виконання. Постановка задачі в цьому разі:
[test1@n001 ~]$ qsub job.job 136.pbs.kpi
qstat
Команда призначена для перегляду стану черг та виконуваних задач.
- Опції
- <без параметрів>
Інформація про власні задачі у стандартному вигляді.
- -q
Інформація про черги.
- -a
Інформація про задачі усіх користувачів.
- -f
Інформація про задачі у розширеному вигляді.
qalter
Команда дозволяє змінювати параметри поставлених задач. Не можна змінювати параметри задач, що виконуються на даний момент. Список опцій схожий на такий у команди qsub.
qhold
За допомогою команди можна перевести задачу у стан очікування.
qrls
Команда звільняє задачу зі стану очікування.
qrerun
Перезапуск задачі.
qdel
Команда видаляє задачі з системи керування ресурсами.
qsig
Команда дозволяє надіслати задачі сигнал на зразок UNIX-команди kill
Середовище задачі
- Змінні середовища, що передаються задачі
- PBS_VERSION версія системи керування задачами (СКЗ)
- PBS_SERVER DNS-ім'я сервера СКЗ
- PBS_JOBNAME назва задачі, визначена користувачем
- PBS_JOBID ідентифікатор задачі, визначений сервером СКЗ
- PBS_JOBCOOKIE
- PBS_ENVIRONMENT тип задачі: PBS_BATCH - для пакетної, та PBS_INTERACTIVE - для інтерактивної
- PBS_ARRAYID порядковий номер, якщо запущений масив задач (qsub -t ...)
- PBS_TASKNUM
- PBS_NODENUM
- PBS_VNODENUM
- PBS_NODEFILE шлях до файлу, в якому записаний список вузлів, призначений задачі
- PBS_QUEUE назва черги, в яку потрапила задача
- PBS_MOMPORT
- PBS_O_HOST назва вузла, з якого запущено задачу
- PBS_O_LOGNAME реєстраційне ім'я користувача-власника
- PBS_O_WORKDIR робоча директорія, з якої було запущено задачу
- PBS_O_HOME домашня тека користувача на вузлі, з якого запущено задачу
- PBS_O_SHELL інтерпретатор команд користувача-власника
- PBS_O_PATH список шляхів користувача-власника
- PBS_O_LANG мова користувача-власника
- PBS_O_MAIL шлях до поштової директорії користувача-власника
Більше деталей можна дізнатися із man-сторінок відповідних команд.
