- •Технології розподільних систем та паралельних обчислень.
- •Взаємодія компонентів Torque. Torque.
- •Приклад.
- •Черга завдань. Qstat
- •Черги завдань на кластері.
- •Перевірка статусу завдань.
- •Порядок виконання лабораторної роботи
- •Постановка завдання
- •Варіанти завдань.
- •Додаток а
- •Зміст звіту з лабораторної роботи:
- •Вимоги до оформлення звіту:
- •Контрольні запитання
Черга завдань. Qstat
Переглянути стан завдань в черзі можна за допомоги команди qstat. Команда qstat -a дає декілька більше інформації. Поточний стан завдання відмічено в стовпці S.
Q — завдання знаходиться в черзі, чекає звільнення ресурсів.
R — завдання в даний момент виконується.
C — завдання завершилося. Інформація о виконаних завданнях зберігається 5 хвилин.
E – завдання завершилося помилкою.
З допомогою команди qstat -n можна отримати інформацію, які саме процесори виділені для запуску завдання.
qdel
Якщо з якихось причин завдання так і не почало виконуватися, наприклад, потрібна дуже велика кількість процесорів, або пам’яті, то виділити завдання із черги можна з допомогою команди qdel. Так само завдання можна виділити, якщо воно вже виконується.
pbstop
pbstop дозволяє займатися моніторингом основної інформації о стані кластеру (загальна інформація, зайнятість процесорів та черг).
Наприклад: pbstop
Usage Totals: 100/135 Procs, 13/17 Nodes, 4/5 Jobs Running 14:00:49
Node States: 5 free 12 job-exclusive
visible CPUs: 0,1,2,3,4,5,6,7
1 2 3 4
-----------------------------------
cl1n001 ........ ........ ........ ........
cl1n005 vvvvvvvv gggggggg gggggggg gggggggg
cl1n009 AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA
cl1n013 vvvvvvvv vvvvvvvv vvvvvvvv gggggggg
cluster2 dddd...
-----------------------------------
Job# Username Queue Jobname CPUs/Nodes S Elapsed/Requested
v = 2098 volodin batch a32.exe 32/4 R 23:28:12/72:00:00
2111 glas batch sfdyn 16/16 C 16:24:12/24:00:00
g = 3235 galin batch a32h7i.out 32/32 R 52:23:53/72:00:00
A = 3236 galin batch a32h7.out 32/32 R 52:10:34/72:00:00
d = 2116 danilov test test4 4/4 R 00:00:41/00:10:00
[?] unknown [@] busy [*] down [.] idle [%] offline [!] other
Черги завдань на кластері.
На кластері діють декілька черг для завдань. Всі вузли кластер розбиті на декілька груп. Кожна черга може виконуватися тільки вузлом з одної або декількох визначених груп. Для кожної черги встановлюються свої обмеження на час виконання завдань, кількість процесорів, об’єму пам’яті, дискового простору, кількості вузлів що виділені для одного завдання і таке інше. Також є можливість ввести обмежений доступ різних користувачів, груп користувачів, системних груп до різних черг.
Назва черги |
cluster2 |
cl1n001–cl1n004 |
cl1n005–cl1n016 |
cl1n017–cl1n022 |
cl1n031–cl1n042 |
Кількість ядер |
Обмеження в часі | |
|
short** |
|
+ |
|
|
|
32 |
2 години |
|
long |
|
|
+ |
|
|
96 |
96 годин |
|
regular |
|
|
+ |
+ |
|
144 |
24 години |
|
sixcore |
|
|
|
|
+ |
144 |
24 години |
|
mix** |
|
|
+ |
+ |
+ |
288 |
24 години |
Черги, відмічені (**), на даний момент відключені по технічним причинам.
Щоб відправити завдання, наприклад, в чергу long потрібно добавити параметр -q long для команди qsub:
qsub -q long -N big-problem -l nodes=4:ppn=8 qbig.qs
Або добавити строку
#PBS -q long
в скрипт для qsub.
По умовчанню в теперішній час використовується черга regular.
Maui
Локальний планувальник Maui займається тим, що опитує менеджер ресурсів Torque на предмет наявності вільних ресурсів і завдань в черзі, які необхідно виконати. На основі отриманих даних і своїх налаштувань, він приймає рішення про запуск якого-небудь завдання і посилає команду серверу Torque виконати її. Maui дозволяє гнучко налаштувати різні стратегії заповнення кластера, пріоритети для завдань за різними критеріями: кількістю запитуваних ресурсів, приналежності користувача до якоїсь групи користувачів і т.п.
Maui становить великий інтерес у зв'язку з тим, що це єдина з вільно розповсюджуваного ПЗ система, яка здатна забезпечувати автоматичний запуск багатопроцесорних завдань, уникаючи при цьому невиправданого простою ресурсів.
Завдання
Далі розглянемо базові команди що до керування завданнями на PBS сервері. Життєвий цикл завдання можна розділити на чотири етапи:
1. Створення.
2. Подання до розгляду.
3. Виконання.
4. Завершення.
Створення.
Як правило, є описаний сценарій подання даних для зберігання всіх параметрів завдання. Ці параметри можуть включати в себе, такі параметри, як тривалість виконання завдання (фактичний час виконання завдання), які ресурси необхідні для запуску, і те, як буде виконано завдання. Нижче наведено приклад подання завдання.
#PBS -N job1
#PBS -l nodes=1:ppn=2,walltime=00:10:00
#PBS -m e
#PBS -M username@localhost
#PBS -V
sleep 13
Цей скрипт подає до розгляду завдання, вказуючи його ім'я job1. Також вказується, що для виконання завдання потрібні обидва ядра на одному вузлі (nodes = 1: ppn = 2), що завдання буде виконуватися протягом не більше 10 хвилин (00:10:00), та ще, Torque повинен вислати сповіщення про завершення виконання завдання або про його зрив на електронну пошту (username @localhost). Крім того, користувач вказує, у якому каталозі виконується завдання і що потрібно для його виконання. У даному випадку у ролі завдання буде команда (sleep 13). Файл опису завдання має розширення *.pbs.
Подання до розгляду.
Завдання подається до розгляду за допомогою команди qsub. Після надання політик, встановлених адміністратором, визначається пріоритет завдання, після чого воно починає виконуватися. Нижче наведено приклад запуску завдання.
> qsub script.pbs
Виконання.
Завдання виконується протягом більшої частини свого життєвого циклу. Під час виконання завдання, його статус можна отримати за допомогою команди: qstat. Нижче наведено, як отримати статус завдання.