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

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

 ▪ Пишемо XRSL

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

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

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

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

 

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

 

Пишемо XRSL

             Для запуску завдання ми повинні написати файл опису завдання (XRSL),  мати виконуваний скрипт (run.sh) і сам файл з даними (input.txt). Для зручності користування Вашими файлами використовуйте домашню директорію: /home/. Виконуваний скрипт  і  файл з даними описані нижче:

[Litovchenko@arc-emi ~]$ cat input.txt

123 Ukraine 093

[Litovchenko@arc-emi ~]$ cat run.sh

#!/bin/sh

#

echo -n "Start date is: "date

echo "-------------"

echo "testjob"

echo "Job running on WN: "`hostname`

echo "Read input file: " `cat input.txt`

echo "-------------"

echo -n "End date is: "date

 

             Нижче показаний найпростіший XRSL файл для запуску простого завдання в Грід

 

[Litovchenko@arc-emi ~]$ cat testjob.xrsl  

   &(executable=run.sh)

   (jobname=testjob)

   (inputFiles=(run.sh "")

                     (input.txt "")

   )

   (stdout=out.txt)

   (stderr=err.txt)

 
             Атрибут  Executable  визначає команду, яка буде виконана на Робочому Вузлі (Worker Node - WN). Атрибут stdout і stderr перераховують файли, куди перенаправляються виведення завдання і повідомлення про помилки, які Ви отримаєте назад після виконання завдання. Атрибут inputFiles служить для опису файлів для передачі між користувальницьким інтерфейсом ( User Interface - UI) і робочими вузлами (WN) .

              Всі подальші дії припускають, що у вас вже створений такий XRSL файл з ім'ям hostname.xrsl. Скопіюйте та збережіть його з таким ім'ям .

 

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

             Для запуску на виконання завдання необхідно, на додаток до чинного проксі-сертифікату, делегувати свої повноваження.

             Тому, просте завдання може бути запущено на виконання за допомогою команди arcsub з використанням опції -с, яка визначає ресурс на який здійснюється запуск завдання:

  arcsub

 

[Litovchenko@arc-emi ~]$ arcsub testjob.xrsl -c arc-emi.bitp.kiev.ua

  ERROR: Failed to connect to arc-emi.bitp.kiev.ua(IPv4):443

  ERROR: Failed to connect to arc-emi.bitp.kiev.ua(IPv4):443

  Job submitted with jobid: gsiftp://arc-emi.bitp.kiev.ua:2811/jobs/0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m

 

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

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

  arcstat -l

 

[Litovchenko@arc-emi ~]$ arcstat gsiftp://arc-emi.bitp.kiev.ua:2811/jobs/0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m

  Job: gsiftp://arc-emi.bitp.kiev.ua:2811/jobs/0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m

   Name: testjob

   State: Finished (FINISHED)

   Exit Code: 0

 

Опція -l використовується для відображення бiльш детальної  інформації про виконання задачі.

            В прикладі завдання має статус Finished (FINISHED) з кодом повернення помилки 0, це означає, що задача закінчена вдало.

 

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

            Якщо робота закінчується зі статусом Finished (FINISHED), ми можемо забрати результат виконання завдання за допомоги простої команди:

  arcget -D

Ключ -D використовується для указання директорії в котру буде забиратися результат виконання завдання, якщо ключ -D не вказаний то результат виконання завдання буде розміщений в поточній директорії в папці з назвою індифікаційного номеру завдання.

 

[Litovchenko@arc-emi ~]$ arcget  gsiftp://arc-emi.bitp.kiev.ua:2811/jobs/0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m

  Results stored at: 0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m

  Jobs processed: 1, successfully retrieved: 1, successfully cleaned: 1

 

            Для того щоб перевірити результат виконання нашого прикладу, перевірьте вміст вихідних файлів:

 

[Litovchenko@arc-emi ~]$ cd ./0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m/

[litovchenko@arc-emi 0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m]$ ls -al

  total 12

  drwx------ 2 litovchenko litovchenko 4096 Sep 21 15:19 .

  drwxrwxr-x 3 litovchenko litovchenko 4096 Sep 21 15:19 ..

  -rw------- 1 litovchenko litovchenko    0 Sep 21 15:19 err.txt

  -rw------- 1 litovchenko litovchenko   41 Sep 21 15:19 out.txt

[litovchenko@arc-emi 0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m]$ cat out.txt

Start date is: Mon Dec 15 15:00:54 EET 2014

------------

testjob

Job running on WN: a32.bitp.kiev.ua

Read input file: 123 Ukraine 093

-------------

End date is: Mon Dec 15 15:01:12 EET 2014

 

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

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

  arckill  

 

[Litovcheko@arc-emi jobs]$ arckill gsiftp://arc-emi.bitp.kiev.ua:2811/jobs/0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m

   Jobs processed: 1, successfully killed: 1, successfully cleaned: 0

 

            Тепер можна впевнетись, що завдання знято, перевiривши стан завдання: 

 

[Litovchenko@arc-emi jobs]$ arcstat gsiftp://arc-emi.bitp.kiev.ua:2811/jobs/0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m

  Job: gsiftp://arc-emi.bitp.kiev.ua:2811/jobs/0WSNDmVHHZgnFh581mupqwtnABFKDmABFKDmhRHKDmABFKDmmQL20m

   Name: testjob

   State: Killed (KILLED)

   Job Error: User requested to cancel the job