▪ Запуск завдання (Job Submission)
▪ Статус завдання (Job Status)
▪ Результати виконання завдання (Job Output)
▪ Відміна завдання (Job Cancel)
Цей практикум продемонструє етапи виконання простого завдання, що вимагає дані. Перш ніж продовжити, переконайтеся, що у вас вже створений і ще дійсний проксі-сертифікат, а якщо ще ні, то створіть його. Подивіться тут, якщо вам необхідна допомога.
Для запуску даної задачі ми повинні написати файл опису завдання (JDL), мати виконуваний скрипт (a.out) і дані у вигляді текстового файлу (input.txt). Вони можуть бути отримані з vobox-edu.bitp.kiev.ua за допомогою наступних команд:
wget ftp://vobox-edu.bitp.kiev.ua/edufiles/input.txt
wget ftp://vobox-edu.bitp.kiev.ua/edufiles/a.out
Для того, щоб передати завдання на запуск Системи Управління Завданнями (Workload management System - WMS) використовується текстовий файл, що містить команди Мови Описання Завдання (Job Description Language - JDL). JDL описує саме завдання і необхідні вимоги і умови.
Нижче показаний найпростіший JDL файл для запуску завдання вимагає даних в Грід.
[Litovchenko@vobox-edu ~]$ cat testce.jdl
[
Type = "Job";
JobType = "Normal";
Executable = "a.out";
StdOutput = "output.txt";
StdError = "error.txt";
InputSandbox = { "input.txt", "a.out" };
OutputSandbox = { "output.txt", "error.txt" };
OutputSandboxBaseDestUri = "gsiftp://ce-emi.bitp.kiev.ua/tmp/";
]
Атрибут Executable визначає команду, яка буде виконана на Робочому Вузлі (Worker Node - WN). Атрибут OutputSandbox перераховує файли, які Ви хочете отримати назад після виконання завдання, зазвичай це файли, куди перенаправляються виведення завдання і повідомлення про помилки. Їхні імена визначаються атрибутами StdOutput і StdError відповідно. JDL атрбути InputSandbox і OutputSandbox є найпростішим способом передачі файлів між користувальницького інтерфейсу ( User Interface - UI) і робочих вузлів (WN). Також, у разі будь-якого збою, визначено кількість повторних запусків.
Всі попередні дії припускають, що у вас вже створений такий JDL файл з назвою testce.jdl. Скопіюйте і збережіть його з таким ім'ям.
Запуск завдання (Job Submission)
Для запуска на виконання задачі необхідно для WM proxy на додаток до чинного проксі-сертифікату делегувати свої повноваження WM proxy серверу.
Тому, просте завдання може бути запущено на виконання за допомогою команди glite-wms-job-submit з використанням опції -а, яка визначає автоматичне делегування. B цьому випадку делегування буде створюватися при кожному виклику подібних команд:
glite-wms-job-submit -a <jdlname>
[Litovchenko@vobox-edu ~]$ glite-wms-job-submit -a testce.jdl
Connecting to the service https://wms-emi.bitp.kiev.ua:7443/glite_wms_wmproxy_server
====================== glite-wms-job-submit Success ======================
The job has been successfully submitted to the WMProxy
Your job identifier is:
https://wms-emi.bitp.kiev.ua:9000/eJsgL7Jh4S6kVxS9jsMERg
==========================================================================
Для того щоб отримати інформацію про статус запущеного завдання передбачена команда:
glite-wms-job-status <job_id>
Ця команда запитує систему Реєстрації (Logging and Bookkeeping, LB) про статус кожного завдання, чий ідентифікатор записаний у файлі, який вказується як вхідний параметр.
[Litovchenko@vobox-edu ~]$ glite-wms-job-status https://wms-emi.bitp.kiev.ua:9000/eJsgL7Jh4S6kVxS9jsMERg
======================= glite-wms-job-status Success =====================
BOOKKEEPING INFORMATION:
Status info for the Job : https://wms-emi.bitp.kiev.ua:9000/eJsgL7Jh4S6kVxS9jsMERg
Current Status: Running
Status Reason: unavailable
Destination: ce-emi.bitp.kiev.ua:8443/cream-pbs-bitpedu
Submitted: Wed Sep 12 15:10:42 2012 EEST
==========================================================================
У прикладі завдання має статус Running. Також відображається CE, визначений для виконання завдання. Як видно, ця команда не потребує ідентифікатора делегування.
Результати виконання завдання (Job Output)
Коли статус задачі, що повертається командою glite-wms-job-status покаже, що завдання успішно завершилося (статус Done (Success)), може бути отриманий результат виконання.
Спосіб №1.
Результат виконання завдання можна отримати за допомоги команди uberftp <hostname>:
[Litovchenko@vobox-edu ~]$ uberftp ce-emi
220 ce-emi.bitp.kiev.ua GridFTP Server 6.10 (gcc64, 1334324800-83) [Globus Toolkit 5.2.0] ready.
230 User bitpedu19 logged in.
uberftp> cd /tmp
uberftp> ls
drwxrwxrwx 2 root root 4096 Aug 30 12:28 .ICE-unix
-rw-r--r-- 1 bitpedu19 bitpedu 0 Sep 12 16:33 error.txt
drwxr-xr-x 2 root root 4096 Sep 12 01:35 hsperfdata_root
drwxr-xr-x 2 tomcat tomcat 4096 Sep 11 11:12 hsperfdata_tomcat
-rwx------ 1 glite glite 0 Sep 12 16:39 interlogger.sock
drwx------ 2 kpiedu1 (null) 4096 Sep 4 19:06 mc-litovchenko
drwx------ 2 root root 4096 Sep 5 11:50 mc-root
-rwxrwxrwx 1 mysql mysql 0 Aug 30 12:28 mysql.sock
-rw-r--r-- 1 bitpedu19 bitpedu 41 Sep 12 16:33 output.txt
-rw-r--r-- 1 root root 413 Sep 12 04:20 yum.conf.security
uberftp> mget error.txt output.txt
error.txt: 0.01 seconds.
output.txt: 41 bytes in 0.01 seconds. 7.42 KB/sec
uberftp> quit
221 Goodbye.
kthxbye
Результат буде збережений в тій директорії, в якій Ви знаходились.
Спосіб №2.
У разі, якщо не вказаний OutputSandboxBaseDestUri в JDL файлі запущеної задачі, результат виконання завдання можна отримати за допомоги команди glite-wms-job-output <jobID>:
[Litovchenko@vobox-edu ~]$ glite-wms-job-output https://wms-emi.bitp.kiev.ua:9000/eJsgL7Jh4S6kVxS9jsMERg
Connecting to the service https://wms-emi.bitp.kiev.ua:7443/glite_wms_wmproxy_server
===================================================================
JOB GET OUTPUT OUTCOME
Output sandbox files for the job:
https://wms-emi.bitp.kiev.ua:9000/eJsgL7Jh4S6kVxS9jsMERg
have been successfully retrieved and stored in the directory:
/tmp/jobOutput/Litovchenko_ eJsgL7Jh4S6kVxS9jsMERg
===================================================================
В цьому випадку всі результуючі файли розміщаються в каталог /tmp/jobOutput/<username>_<jobID>. Але зручніше отримувати результат в каталозі, що фіксується за допомоги опції --dir:
glite-wms-job-output --dir <path_name> <jobID>
[Litovchenko@vobox-edu ~]$ glite-wms-job-output --dir /home/Litov/JobOutput https://wms-emi.bitp.kiev.ua:9000/eJsgL7Jh4S6kVxS9jsMERg
Connecting to the service https://wms-emi.bitp.kiev.ua:7443/glite_wms_wmproxy_server
===================================================================
JOB GET OUTPUT OUTCOME
Output sandbox files for the job:
https://wms-emi.bitp.kiev.ua:9000/eJsgL7Jh4S6kVxS9jsMERg
have been successfully retrieved and stored in the directory:
/home/Litov/JobOutput/Litovchenko_eJsgL7Jh4S6kVxS9jsMERg
===================================================================
Для того щоб перевірити результат виконання нашого прикладу, перевірте вміст вихідних файлів:
[Litovchenko@vobox-edu Litovchenko_eJsgL7Jh4S6kVxS9jsMERg]$ cat output.txt
Enter range's limits
Integral is 0.325796
Якщо що-небудь виконується не так, як хотілося, завдання може бути зняте командою:
glite-wms-job-cancel <job_id>
[Litovcheko@vobox-edu ~]$ glite-wms-job-cancel https://wms-emi.bitp.kiev.ua:9000/eJsgL7Jh4S6kVxS9jsMERg
Are you sure you want to remove specified job(s) [y/n]y : y
Connecting to the service https://wms-emi.bitp.kiev.ua:7443/glite_wms_wmproxy_server
============================= glite-wms-job-cancel Success =============================
The cancellation request has been successfully submitted for the following job(s):
- https://wms-emi.bitp.kiev.ua:9000/0bslnHe2TQXWyW0FCfsHng
========================================================================================