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

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

 ▪ Пишемо 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

         Для того, щоб передати завдання на запуск використовується текстовий файл, що містить команди Мови Описання Завдання (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 <ce_host>:<tcp_port>/cream-<batch_system_name>-<queue_name> <jdlname>

 

[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

 

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

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

  glite-се-job-status <job_id>

Ця команда запитує систему Реєстрації (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

 

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

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

  glite-ce-job-cancel <job_id>

 

[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

<< наверх >>