Обчислювальний грід-кластер
Інституту теоретичної фізики ім. М.М. Боголюбова НАН України

Запуск завдання, що потребує дані -- WMSProxy

 ▪ Пишемо JDL файл

 ▪ Запуск завдання (Job Submission)

 ▪ Статус завдання (Job Status)

 ▪ Результати виконання завдання (Job Output)

 ▪ Відміна завдання (Job Cancel)


            Цей практикум продемонструє етапи виконання простого завдання, що вимагає дані. Перш ніж продовжити, переконайтеся, що у вас вже створений і ще дійсний проксі-сертифікат, а якщо ще ні, то створіть його. Подивіться тут, якщо вам необхідна допомога.

 

Пишемo JDL файл 

          Для запуску даної задачі ми повинні написати файл опису завдання (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

  ==========================================================================

 

Статус завдання (Job Status)

          Для того щоб отримати інформацію про статус запущеного завдання передбачена команда:

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

 

Відміна завдання (Job Cancel)

            Якщо що-небудь виконується не так, як хотілося, завдання може бути зняте командою:

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

========================================================================================

<< наверх >>