- •Технології розподільних систем та паралельних обчислень.
- •Взаємодія компонентів Torque. Torque.
- •Приклад.
- •Черга завдань. Qstat
- •Черги завдань на кластері.
- •Перевірка статусу завдань.
- •Порядок виконання лабораторної роботи
- •Постановка завдання
- •Варіанти завдань.
- •Додаток а
- •Зміст звіту з лабораторної роботи:
- •Вимоги до оформлення звіту:
- •Контрольні запитання
Взаємодія компонентів Torque. Torque.
Для того щоб запустити програму на кластері, необхідно використовувати систему управління завданнями Torque PBS. За звичай для цього створюється спеціальний скрипт, та ставиться в чергу з допомогою команди qsub. Цей скрипт містить інформацію о необхідних ресурсах (число вузлів кластера, необхідна кількість оперативної пам’яті та необхідна кількість часу). В усьому іншому цей скрипт являється звичайним bash-скриптом. В ньому можливо налаштувати потрібні перемінні оточення й запустити необхідну програму.
Цей скрипт буде виконано лише на однім процесорі з виділеного списку. В обов’язки скрипта входить запуск програми на решті вузлів. Наприклад, за допомоги команди mpiexec.
Приклад.
В цьому прикладі в чергу додається завдання sleep на один процесор, з максимальним часом виконання 5 хвилин, й використанням 100 Мб віртуальної оперативної пам’яті.
sleep.qs
#!/bin/bash
#PBS -N sleep
#PBS -l nodes=1
#PBS -l pvmem=100mb
#PBS -l walltime=05:00
echo "Start date: `date`"
sleep 60
echo " End date: `date`"
Відправка завдання на кластер виконується з допомогою команди qsub:
qsub sleep.qs
Строки, що починаються з #PBS, є параметрами для команди qsub. Ці параметри можливо також вказувати явно, при виконані qsub. Наприклад:
qsub -N sleep -l nodes=1 -l pvmem=100mb -l walltime=5:00 sleep.qs
Параметри, відповідальні за виділення ресурсів, можливо вказувати через кому:
qsub -l nodes=1,pvmem=100mb,walltime=5:00 sleep.qs
Основні параметри команди qsub.
-d path Визначає робочу директорію для завдання. Якщо не задана, то робочою являється домашня директорія користувача.
-e path -o path Задаються імена файлів помилок (stderr), та стандартного виводу (stdout). По умовчанню цей файл <ім'я_завдання>.e<job_id> й <ім’я_завдання>.o<job_id> в поточній директорії.
-j oe -j eo Об’єднання файлів виведення/помилок. oe — файли об’єдну-ються в стандартний файл виведення, eo — в файл помилок.
-m aben Події, при яких треба відправляти повідомлення по e-mail. a — в випадку аварійного завершення завдання, b— в момент виконання завдання, e — в момент завершення завдання, n — не відправляти повідомлення. Можна вказати декілька букв з abe або одну букву n. По умовчанню використовується тільки a.
-M e-mail Адреса отримувача, чи список адресатів отримувачів через кому, котрим будуть відправлені повідомлення. По умовчанню — власник завдання.
-N name Визначає ім’я задачі.
-q queue Задає чергу в котру додається завдання. На сервері є дві черги: основна batch для розрахунків та тестова test для тестування. По умовчанню завдання ставляться в чергу batch.
-l resource_list Визначає список ресурсів, необхідних для завдань.
Основні ресурси (використовуються з опцією -l).
nodes=N nodes=M:ppn=8 Визначає необхідну кількість процесорів або вузлів. В першому випадку запитується N процесорів, N може бути від 1 до 128. В другому випадку запитується M вузлів, на кожному з котрих використовується всі 8 процесорів. M в даному прикладі може бути від 1 до 16. Наприклад, nodes=24 запросить 24 процесори, nodes=3:ppn=8 запросить 3 вузли по 8 процесорів, nodes=6:ppn=4 запросить 6 вузлів по 4 процесори на кожному. По умовчанню виділяється один процесор.
pmem=size pvmem=size Визначає необхідну одному процесу кількість фізичної та віртуальної пам’яті відповідно. Розмір вказується за допомогою цілого числа із суфіксом: b, kb, mb, gb. Наприклад, pvmem=1gb запросить 1 Гб віртуальної пам’яті для кожного процесу. По умовчанню обмеження поки відсутнє. Однак в цьому випадку, якщо завданню виділити дуже багато пам’яті, то вона може зависнути, й підвісити обчислювальний вузол.
walltime=time Визначає максимальний час виконання завдання. По закінченню цього часу програму буде завершено. По умовчанню встановлюється значення 24 години. Обмеження максимального значення складає 72 години. Наприклад: walltime=1:45:00 — обірвати виконання завдання через 1 годину 45 хвилин.
Перемінні оточення, котрі встановлює Torque.
PBS_O_WORKDIR Директорія, в котрій знаходиться користувач під час відправлення завдання в чергу.
PBS_JOBID Унікальний номер завдання.
PBS_O_HOST Поточний вузол, на котрім запускають скрипт.
PBS_NODEFILE Файл, в котрім перераховані всі виділені вузли.