WMS (Workload Management System) и запуск заданий

Содержание

Слайд 2

Saint-Petersburg, EGEE tutorial, 14.11.2006

Использование заданий для запуска приложений

Задание (job) – это средство

Saint-Petersburg, EGEE tutorial, 14.11.2006 Использование заданий для запуска приложений Задание (job) –
для запуска приложений в Грид
Информация, которая должна быть определена, когда задание должно быть запущено в Грид
Характеристики задания
Требования задания и условия на вычислительные ресурсы
Включая требования на программное обеспечение
Требования к данным
Эта информация определяется при помощи Job Description Language (JDL)
Основан на CLASSified ADvertisement language (ClassAd) из проекта Condor
ClassAd – последовательность атрибутов, разделённых (;)

Слайд 3

Saint-Petersburg, EGEE tutorial, 14.11.2006

Как это работает? Основные компоненты.

User Interface (UI): Место, откуда пользователь

Saint-Petersburg, EGEE tutorial, 14.11.2006 Как это работает? Основные компоненты. User Interface (UI):
вошёл в Грид

Resource Broker (RB): Сопоставляет пользовательские требования
и доступные ресурсы Грид

Computing Element (CE): Очередь на выполнение заданий на том кластере, где будет выполняться задание

Storage Element (SE): Сервер хранения данных, где сохраняются Грид файлы (чтение/запись/копирование) или их реплики.

Information System: Характеристики и статус для CE иSE (Используя “GLUE schema”)

Слайд 4

Saint-Petersburg, EGEE tutorial, 14.11.2006

EGEE/LCG Workload Management System

Пользователь управляет заданиями через подсистему управления

Saint-Petersburg, EGEE tutorial, 14.11.2006 EGEE/LCG Workload Management System Пользователь управляет заданиями через
загрузкой (Workload Management System - WMS);
Основная задача WMS - планирование и управление распределенными ресурсами в системе Grid;
Что может пользователь?
Посылать задачи на выполнение;
Выполнять задачи на наиболее подходящих для этого ресурсах (WMS автоматически оптимизирует использование ресурсов);
Получать информацию о состоянии задач;
Получать результаты выполнения задач.

Слайд 5

Saint-Petersburg, EGEE tutorial, 14.11.2006

Сервисы и запуск заданий

Replica
Catalogue

Logging &
Book-keeping

Resource
Broker

Computing
Element

Information
Service

Job Status

Author.
&Authen.

Input “sandbox” +

Saint-Petersburg, EGEE tutorial, 14.11.2006 Сервисы и запуск заданий Replica Catalogue Logging &
Broker Info

Output “sandbox”

“User interface”

Слайд 6

Saint-Petersburg, EGEE tutorial, 14.11.2006

Выполнение задания

SUBMITTED - задание послано пользователем, но пока не

Saint-Petersburg, EGEE tutorial, 14.11.2006 Выполнение задания SUBMITTED - задание послано пользователем, но
обработано Network Server
WAITING - задание принято Network Server, но ещё не обработано Workload Manager
READY - заданию назначен Computing Element, но оно туда ещё не передано
SCHEDULED - задание ожидает в очереди на Computing Element
RUNNING - задание выполняется
DONE - задание завершилось
ABORTED - задание снято WMS (т.к. слишком долгое, срок действия сертификата истёк, и т.п.)
CANCELLED - задание снято пользователем
CLEARED - Output Sandbox передан на User Interface

Слайд 7

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS

Слайд 8

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status

Слайд 9

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status

Слайд 10

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB storage

Слайд 11

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

WM: ответственен за выполнение действий

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status WM:
для удовлетворения запроса

RB
storage

Слайд 12

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage

Где должно выполняться
это задание

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB
?
Match-
Maker/
Broker

Слайд 13

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage
Match-
Maker/
Broker

Matchmaker: отвечает за поиск

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB
“лучшего” CE, где будет выполняться задание

Слайд 14

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage
Match-
Maker/
Broker

Где (на каком SE),

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB
необходимые данные?

Какой статус у Грид-ресурсов

Слайд 15

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage
Match-
Maker/
Broker

Выбор CE

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB

Слайд 16

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage
Job
Adapter

JA: ответственен за окончательную

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB
“доводку” задания перед процедурой запуска (напр. создание wrapper скрипта, и т.п.)

Слайд 17

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage

JC: ответственен за операции

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB
управления заданием (через CondorC)

Слайд 18

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage

Задание

CE получает запрос и

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB
посылает задание на выполнение LRMS

Файлы из
Input Sandbox

Слайд 19

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage

LRMS управляет выполнением задания

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB

Слайд 20

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

Файлы из
Output Sandbox

RB
storage

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status Файлы

Слайд 21

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage

edg-job-get-output

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB storage edg-job-get-output

Слайд 22

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

Information
Service

RLS

Job
Status

RB
storage

cleared

Файлы из
Output Sandbox

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания Information Service RLS Job Status RB

Слайд 23

Saint-Petersburg, EGEE tutorial, 14.11.2006

Практическая часть

Saint-Petersburg, EGEE tutorial, 14.11.2006 Практическая часть

Слайд 24

Saint-Petersburg, EGEE tutorial, 14.11.2006

Создание proxy сертификата

Перед началом работы создаём proxy сертификат
grid-proxy-init
При

Saint-Petersburg, EGEE tutorial, 14.11.2006 Создание proxy сертификата Перед началом работы создаём proxy
этом нужно будет ввести пароль, которым защищён сертификат. По умолчанию время жизни такого сертификата равно 12 часам.
> grid-proxy-init
Your identity: /C=RU/O=RDIG/OU=users/OU=pnpi.nw.ru/CN=Elena Martinova
Enter GRID pass phrase for this identity:
Creating proxy ........................................................................ Done
Your proxy is valid until: Sat Nov 11 01:53:23 2006
Для получения информации о proxy-сертификате можно воспользоваться следующей командой:
grid-proxy-info –all
> grid-proxy-info -all
subject : /C=RU/O=RDIG/OU=users/OU=pnpi.nw.ru/CN=Elena Martinova/CN=proxy
issuer : /C=RU/O=RDIG/OU=users/OU=pnpi.nw.ru/CN=Elena Martinova
identity : /C=RU/O=RDIG/OU=users/OU=pnpi.nw.ru/CN=Elena Martinova
type : full legacy globus proxy
strength : 512 bits
path : /tmp/x509up_u10032
timeleft : 11:59:21

Слайд 25

Saint-Petersburg, EGEE tutorial, 14.11.2006

Удаление proxy сертификата

По окончании сеанса работы рекомендуется уничтожить proxy

Saint-Petersburg, EGEE tutorial, 14.11.2006 Удаление proxy сертификата По окончании сеанса работы рекомендуется уничтожить proxy сертификат grid-proxy-destroy
сертификат
grid-proxy-destroy

Слайд 26

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 1

Есть программа на PERL tstp.pl, которая использует

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 1 Есть программа на PERL tstp.pl,
входной файл c колонкой чисел. Каждое число возводится в квадрат и записывается в выходной файл.
Имя входного файла передается как параметр программы. Имя выходного файла то же как и входного, но с расширением ‘out’.

Слайд 27

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 1 (PERL файл)

PERL файл:
#!/usr/bin/perl -w
my $inpf=$ARGV[0];
$inpf=~/(.*)\./;
my $outf=$1.'.out';
open(INP,"$inpf");

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 1 (PERL файл) PERL файл: #!/usr/bin/perl
open(OUT,">$outf");
while (my $s=){
$s*=$s; print(OUT "$s\n");
};
close(INP); close(OUT);

Слайд 28

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 1 (JDL файл)

JDL файл:
VirtualOrganisation = "nw_ru";
Executable =

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 1 (JDL файл) JDL файл: VirtualOrganisation
“tstp.pl";
Arguments = “tstp.inp";
StdOutput = "std.out";
StdError = "std.err";
InputSandbox={“tstp.pl",“tstp.inp"};
OutputSandbox = {"std.out", "std.err",“tstp.out"};
RetryCount = 3;

Слайд 29

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 1 (INP файл)

INP файл:
1
2
3
4
5
6

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 1 (INP файл) INP файл: 1

Слайд 30

Saint-Petersburg, EGEE tutorial, 14.11.2006

Просмотр доступных ресурсов

edg-job-list-match --vo
- список

Saint-Petersburg, EGEE tutorial, 14.11.2006 Просмотр доступных ресурсов edg-job-list-match --vo - список доступных
доступных ресурсов, удовлетворяющих требованиям задания
- match making без реального запуска задания
>edg-job-list-match tstp.jdl
Selected Virtual Organisation name (from JDL): nw_ru
Connecting to host cluster.pnpi.nw.ru, port 7772
***************************************************************************
COMPUTING ELEMENT IDs LIST
The following CE(s) matching your job requirements have been found:
*CEId*
grid.scc.ioffe.ru:2119/jobmanager-pbs-nw_ru
grid.spiiras.nw.ru:2119/jobmanager-pbs-nw_ru
cluster.pnpi.nw.ru:2119/jobmanager-pbs-nw_ru
***************************************************************************

Слайд 31

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания

edg-job-submit [-r ] [--vo ] [-o ]

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания edg-job-submit [-r ] [--vo ] [-o

-r задание будет послано на определённый CE, идентифицируемый как
--vo название Виртуальной Организации (если не определено ранее в конфигурационном файле или JDL файле)
-o идентификатор задания (jobid) будет сохранён в файле
Полезно для дальнейших команд, например:
edg-job-status –i (или jobid)
-i означает, что jobid содержится в файле

Слайд 32

Saint-Petersburg, EGEE tutorial, 14.11.2006

Запуск задания 1

>edg-job-submit -o myid tstp.jdl
Selected Virtual Organisation name

Saint-Petersburg, EGEE tutorial, 14.11.2006 Запуск задания 1 >edg-job-submit -o myid tstp.jdl Selected
(from JDL): nw_ru
Connecting to host cluster.pnpi.nw.ru, port 7772
Logging to host cluster.pnpi.nw.ru, port 9002
================= edg-job-submit Success ==================================
The job has been successfully submitted to the Network Server.
Use edg-job-status command to check job current status. Your job identifier (edg_jobId) is:
- https://cluster.pnpi.nw.ru:9000/1t1_M2yCcm1FZu2XEbzEzg
The edg_jobId has been saved in the following file:
/home/elm/tut/task1/myid
=====================================================================

Слайд 33

Saint-Petersburg, EGEE tutorial, 14.11.2006

Просмотр статуса задания

edg-job-status [-i ]
-i идентификатор задания

Saint-Petersburg, EGEE tutorial, 14.11.2006 Просмотр статуса задания edg-job-status [-i ] -i идентификатор
(jobid) будет браться из файла
>edg-job-status -i myid
*************************************************************
BOOKKEEPING INFORMATION:
Status info for the Job : https://cluster.pnpi.nw.ru:9000/1t1_M2yCcm1FZu2XEbzEzg
Current Status: Done (Success)
Exit code: 0
Status Reason: Job terminated successfully
Destination: grid.scc.ioffe.ru:2119/jobmanager-pbs-nw_ru
reached on: Fri Nov 10 14:01:14 2006
*************************************************************

Слайд 34

Saint-Petersburg, EGEE tutorial, 14.11.2006

Получение выходных файлов

Когда задание завершилось (статус Done), файлы, указанные

Saint-Petersburg, EGEE tutorial, 14.11.2006 Получение выходных файлов Когда задание завершилось (статус Done),
в атрибуте OutputSandbox могут быть переданы на UI, с которого было запущено задание.
edg-job-get-output [--dir ] [-i ]
-i идентификатор задания (jobid) будет браться из файла
--dir файлы из OutputSandbox будут сохранены в директории
>edg-job-get-output --dir . -i myid
Retrieving files from host: cluster.pnpi.nw.ru ( for https://cluster.pnpi.nw.ru:9000/1t1_M2yCcm1FZu2XEbzEzg )
*********************************************************************************
JOB GET OUTPUT OUTCOME
Output sandbox files for the job:
- https://cluster.pnpi.nw.ru:9000/1t1_M2yCcm1FZu2XEbzEzg
have been successfully retrieved and stored in the directory:
/home/elm/tut/task1/elm_1t1_M2yCcm1FZu2XEbzEzg
*********************************************************************************

Слайд 35

Saint-Petersburg, EGEE tutorial, 14.11.2006

Завершение задания

edg-job-cancel [-i ]
>edg-job-cancel -i myid
Are

Saint-Petersburg, EGEE tutorial, 14.11.2006 Завершение задания edg-job-cancel [-i ] >edg-job-cancel -i myid
you sure you want to remove specified job(s)? [y/n]n :y
============================= edg-job-cancel Success ==============================
The cancellation request has been successfully submitted for the following job(s):
- https://cluster.pnpi.nw.ru:9000/iOomRLK6M4s_BcSm_prgRw
==============================================================================

Слайд 36

Saint-Petersburg, EGEE tutorial, 14.11.2006

Результат

После завершения работы команды edg-get-output в текущей директории пользователя

Saint-Petersburg, EGEE tutorial, 14.11.2006 Результат После завершения работы команды edg-get-output в текущей
будет создана директория, в которую скопируются 3 файла.
std.err
std.out
tstp.out
Содержимое выходного файла с результатами счёта:
$ cat tstp.out
1
4
9
16
25
36

Слайд 37

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 2

Есть файл с исходным текстом программы на

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 2 Есть файл с исходным текстом
языке С ctst.c, которая выводит строку “Hello world” на стандартный вывод.
Есть Makefile для сборки этой программы.
Необходимо обеспечит сборку и запуск программы на удаленном ресурсе.

Слайд 38

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 2 (JDL файл)

JDL файл:
JobType="Normal";
VirtualOrganisation = "nw_ru";
Executable =

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 2 (JDL файл) JDL файл: JobType="Normal";
"startC.sh";
StdOutput = "ctst.out";
StdError = "ctst.err";
OutputSandbox = {"ctst.out","ctst.err"};
InputSandbox = {"startC.sh","ctst.c","Makefile"};
RetryCount=3;

Слайд 39

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 2 (скрипт)

Cтартовый скрипт startC.sh:
#!/bin/bash
make //сборка программы
chmod +x

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 2 (скрипт) Cтартовый скрипт startC.sh: #!/bin/bash
ctst //разрешаем запускать ее
./ctst //запускаем
exit 0

Слайд 40

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 2 (С файл)

Текст программы на С -

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 2 (С файл) Текст программы на
ctst.c:
#include
int main(int argc, char **argv)
{
char *name = argv[1];
printf("\n\n\n");
printf("Hello world!\n");
printf("\n\n\n");
// exit(0);
}

Слайд 41

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 2 (Makefile)

Makefile
ctst: ctst.o
g++ ctst.o -o ctst

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 2 (Makefile) Makefile ctst: ctst.o g++
-lm
clean:
rm ctst.o ctst

Слайд 42

Saint-Petersburg, EGEE tutorial, 14.11.2006

Пример задания 3

Есть файл со скриптом, который генерит набор

Saint-Petersburg, EGEE tutorial, 14.11.2006 Пример задания 3 Есть файл со скриптом, который
JDL файлов, количество которых определяется входным параметром
Затем для каждого задания случайным образом выбираются слова из системного словаря /usr/share/dict/words, которые передаются, как аргументы для каждого из запускаемых заданий.
Все задания запускаются и контролируется процесс их выполнения.
После завершения всех заданий (успешного или нет) – выводится результат.
Имя файла: WMS-(Workload-Management-System)-и-запуск-заданий.pptx
Количество просмотров: 126
Количество скачиваний: 0