▪ Запуск завдання (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
Для того, щоб передати завдання на запуск використовується текстовий файл, що містить команди Мови Описання Завдання (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-ce-job-submit з використанням опції -а, яка визначає автоматичне делегування. Коли використовується ця опція, то немає необхідності викликати glite-ce-delegate-proxy -d, в цьому випадку делегування буде створюватися при кожному виклику подібних команд:
glite-ce-job-submit -a -r
[Litovchenko@vobox-edu ~]$ glite-ce-job-submit -a -r ce-emi.bitp.kiev.ua:8443/cream-pbs-bitpedu testce.jdl
https://ce-emi.bitp.kiev.ua:8443/CREAM958514574
Для того щоб отримати інформацію про статус запущеного завдання передбачена команда:
glite-се-job-status
Ця команда запитує систему Реєстрації (Logging and Bookkeeping, LB) про статус кожного завдання, чий ідентифікатор записаний у файлі, який вказується як вхідний параметр. Опцiя -L <0/1/2> використовується для виводу бiльш детальної iнформації:
[Litovchenko@vobox-edu ~]$ glite-ce-job-status -L 1 https://ce-emi.bitp.kiev.ua:8443/CREAM958514574
****** JobID=[https://ce-emi.bitp.kiev.ua:8443/CREAM958514574]
Current Status = [DONE-OK]
ExitCode = [0]
Grid JobID = [N/A]
Job status changes:
-------------------
Status = [REGISTERED] - [Wed 12 Sep 2012 16:33:41] (1347456821)
Status = [PENDING] - [Wed 12 Sep 2012 16:33:42] (1347456822)
Status = [RUNNING] - [Wed 12 Sep 2012 16:33:49] (1347456829)
Status = [REALLY-RUNNING] - [Wed 12 Sep 2012 16:33:51] (1347456831)
Status = [DONE-OK] - [Wed 12 Sep 2012 16:33:53] (1347456833)
Issued Commands:
-------------------
*** Command Name = [JOB_REGISTER]
Command Category = [JOB_MANAGEMENT]
Command Status = [SUCCESSFULL]
*** Command Name = [JOB_START]
Command Category = [JOB_MANAGEMENT]
Command Status = [CREATED]
У прикладі завдання має статус [DONE-OK]. Також відображається CE, визначений для виконання завдання. Як видно, ця команда не потребує ідентифікатора делегування.
Результати виконання завдання (Job Output)
Коли результат, що повертається командою glite-ce-job-status покаже, що завдання успішно завершилося (статус [DONE-OK]), може бути отриманий результат виконання:
[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
drwx------ 2 kpiedu1 (null) 4096 Sep 4 19:06 mc-litovchenko
drwx------ 2 root root 4096 Sep 5 11:50 mc-root
-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
[Litovchenko@vobox-edu ~]$ cat output.txt
Enter range's limits
Integral is 0.325796
Якщо що-небудь виконується не так, як хотілося, завдання може бути зняте командою :
glite-ce-job-cancel
[Litovcheko@vobox-edu ~]$ glite-ce-job-cancel https://ce-emi.bitp.kiev.ua:8443/CREAM958514574
Are you sure you want to remove specified job(s) [y/n]y : y