Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемМарианна Сысоева
1 Enabling Grids for E-sciencE Специальные типы заданий в ППО gLite Н. Клопов (Петербургский Институт Ядерной Физики РАН)
2 Enabling Grids for E-sciencE 2 Simple job submission JDL- описание задания [ Type = Job; #Default JobType = Normal; #Default Executable = test.sh; StdOutput = std.out; StdError = std.err; InputSandbox = {test.sh,inpdt}; OutputSandbox = {std.out,std.err,outdt}; Requirements= RegExp(*.cern*.*,other.GlueCEUniqueID) &&(Member(POVRAY-3.5, other.GlueHostApplicationSoftwareRunTimeEnvironment)) ] Network server glite-job-submit glite-job-status glite-job-output glite-job-cancel WMProxy glite-wms-job-submit glite-wms-job-status glite-wms-job-output glite-wms-job-cancel
3 Enabling Grids for E-sciencE 3 WMProxy WMProxy (Workload Manager Proxy) –это новый сервис, обеспечивающий доступ к gLite Workload Management System (WMS) через интерфейс Web Services. –был разработан для обеспечения обработки большого числа одновременных запросов на запуск задач: gLite 1.5 => ~180 secs for 500 jobs цель => ~60 secs for 1000 jobs –обеспечивает такие новые возможности как bulk submission и разделяемые и компрессируемые InputSandboxes. –предполагается в дальнейшем полностью перейти на WMProxy
4 Enabling Grids for E-sciencE 4 WMProxy In order to submit jobs with WMProxy, its mandatory to delegate credentials: The submission/monitoring commands are slightly different, but most of the old options are supported glite-wms-job-submit -d del_ID collection.jdl glite-wms-job-status jobID glite-wms-job-output jobID glite-wms-job-delegate-proxy -d del_ID
5 Enabling Grids for E-sciencE 5 Scattered Input Sandboxes Input Sandbox can contain –адреса локальных файлов на UI –URI указывающие на файлы на удаленных gridFTP/HTTPS серверах Может быть определен базовый URI, относящийся ко всем файлам из InputSandbox (кроме локальных) Только локальные файлы ( file:// ) передаются на WMS Удаленные файлы загружаются на WN скритом JobWrapper сразу перед стартом задачи InputSandbox = { "gsiftp://neo.datamat.it:2811/var/prg/sim.exe", " "file:///home/pacio/myconf }; InputSandboxBaseURI = "gsiftp://matrix.datamat.it:2811/var";
6 Enabling Grids for E-sciencE 6 Scattered Output Sandboxes В JDL были добавлены новые атрибуты для спецификации места назначения выходных файлов в OutputSandbox Можно определить базовый URI для всех файлов из Sandbox Файлы будут копироваться после завершения задачи скриптом JobWrapper на место назначения без передачи их на WMS нод OutputSandbox = {"jobOutput", "run1/event1", "jobError}; OutputSandboxDestURI = { "gsiftp://matrix.datamat.it/var/jobOutput", " "jobError"}; OutputSandboxBaseDestURI = "gsiftp://neo.datamat.it/home/run1/";
7 Enabling Grids for E-sciencE 7 Request types Job (default) Type= DAG (set of subjobs) Collection (set of subjobs)- WMProxy Job types Normal (default) Interactive JobType= MPICH Parametric (set of subjobs)- WMProxy Checkpointable Partitionable (set of subjobs)-WMProxy
8 Enabling Grids for E-sciencE 8 DAG job DAG - Directed Acyclic Graph
9 Enabling Grids for E-sciencE 9 DAG job DAG (Directed Acyclic Graph)– это набор задач, где ввод, вывод или выполнение одних задач может зависить от других Зависимости представляются графом, где нодами являются задачи, а ребра определяют зависимости Зависимости не могут быть циклическими (Acyclic Graph) DAG в целом (как и его ноды) получает уникальный ID, который может использоваться для управления (cancel, get status, get output) nodeA nodeBnodeC NodeF nodeD
10 Enabling Grids for E-sciencE 10 DAG job
2; InputSandbox =... nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" title="Enabling Grids for E-sciencE 11 DAG job [ type = "dag"; VirtualOrganisation = ATLAS"; max_running_nodes = 4; Requirements=other.GlueCEInfoTotalCPUs>2; InputSandbox =... nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" class="link_thumb"> 11 Enabling Grids for E-sciencE 11 DAG job [ type = "dag"; VirtualOrganisation = ATLAS"; max_running_nodes = 4; Requirements=other.GlueCEInfoTotalCPUs>2; InputSandbox =... nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" ; ]; nodeC = [ file ="nodes/nodeC.jdl" ; ]; nodeD = [file ="nodes/nodeD.jdl";]; dependencies = { {nodeA, nodeB},{nodeA, nodeC}, { {nodeB,nodeC}, nodeD } }; ]; ] DAG job : иерархия в jdl структуре Набор JDL атрибутов, описывающих DAG в целом и которые могут наследоваться нодами 2; InputSandbox =... nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl"> 2; InputSandbox =... nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" ; ]; nodeC = [ file ="nodes/nodeC.jdl" ; ]; nodeD = [file ="nodes/nodeD.jdl";]; dependencies = { {nodeA, nodeB},{nodeA, nodeC}, { {nodeB,nodeC}, nodeD } }; ]; ] DAG job : иерархия в jdl структуре Набор JDL атрибутов, описывающих DAG в целом и которые могут наследоваться нодами"> 2; InputSandbox =... nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" title="Enabling Grids for E-sciencE 11 DAG job [ type = "dag"; VirtualOrganisation = ATLAS"; max_running_nodes = 4; Requirements=other.GlueCEInfoTotalCPUs>2; InputSandbox =... nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl">
12 Enabling Grids for E-sciencE 12 DAG job [ type = "dag"; VirtualOrganisation = ATLAS"; max_running_nodes = 4; nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" ; ]; nodeC = [ file ="nodes/nodeC.jdl" ; ]; nodeD = [ file ="nodes/nodeD.jdl"; ]; dependencies = { {nodeA, nodeB}, {nodeA, nodeC}, { {nodeB,nodeC}, nodeD } }; ]; ] DAG job : иерархия в jdl структуре Атрибут Nodes содержит описание всех нодов DAG и на том же уровне атрибут dependencies определяющий все зависимости между нодами.
13 Enabling Grids for E-sciencE 13 DAG job [ type = "dag"; VirtualOrganisation = ATLAS"; max_running_nodes = 4; nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" ; ]; nodeC = [ file ="nodes/nodeC.jdl" ; ]; nodeD = [ file ="nodes/nodeD.jdl"; ]; dependencies = { {nodeA, nodeB}, {nodeA, nodeC}, { {nodeB,nodeC}, nodeD } }; ]; ] Набор атрибутов (имена пределяются пользователем), каждый из которых относится к конкретному ноду и содержит его JDL- описание DAG job : иерархия в jdl структуре
14 Enabling Grids for E-sciencE 14 DAG job [ type = "dag"; VirtualOrganisation = ATLAS"; max_running_nodes = 4; nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" ; ]; nodeC = [ description = [ JobType = "Normal"; Executable = "b.exe"; Arguments = "1 2 3"; InputSandbox={b.exe}; OutputSandbox = {"myoutput.txt}; ]; ] Описание нода может быть сделано здесь (description атрибут), вместо использования отдельного файла
15 Enabling Grids for E-sciencE 15 DAG job: dependencies [ type = "dag"; VirtualOrganisation = ATLAS"; max_nodes_running = 4; nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" ; ]; nodeC = [ file ="nodes/nodeC.jdl" ; ]; nodeD = [ file ="nodes/nodeD.jdl"; ]; dependencies = { {nodeA, nodeB}, {nodeA, nodeC}, { {nodeB,nodeC}, nodeD } }; ]; ] { nodeA, nodeB } means that nodeB cannot start before nodeA has completed its execution successfully { nodeA, nodeC } means that nodeC cannot start before nodeA has completed its execution successfully { { nodeB, nodeC}, nodeD } is equivalent to: –{ nodeB, nodeD }, –{ nodeC, nodeD }
16 Enabling Grids for E-sciencE 16 DAG job [ type = "dag"; VirtualOrganisation = ATLAS"; max_running_nodes = 4; nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" ; ]; nodeC = [ file ="nodes/nodeC.jdl" ; ]; nodeD = [ file ="nodes/nodeD.jdl"; ]; dependencies = { {nodeA, nodeB}, {nodeA, nodeC}, { {nodeB,nodeC}, nodeD } }; ]; ] max_running_nodes атрибут- integer >0 представляющее максимальное число нодов DAG, которое может быть запущено DAGMan в данное время. Напр., max_running_nodes=4 Это означает, что если в определенный момент есть N свободных от зависимости нодов, только 4 из них будет запущено. Default: 10 0 представляющее максимальное число нодов DAG, которое может быть запущено DAGMan в данное время. Напр., max_running_nodes=4 Это означает, что если в определенный момент есть N свободных от зависимости нодов, только 4 из них будет запущено. Default: 10">
17 Enabling Grids for E-sciencE 17 DAG: InputSandbox Все ноды, которые не содержат InputSandbox атрибут в своем описании, наследуют его значение от корневого InputSandbox атрибута DAG. Ноды, представляющие задачи без входных данных, должны содержать в своем описании пустой InputSandbox: InputSandbox = {}; В описании нода допускается делать ссылки на корневые атрибуты DAG или атрибуты другого нода. InputSandbox={root.InputSandbox, file:///home/data/myfile.txt"};
18 Enabling Grids for E-sciencE 18 DAG: InputSandbox InputSandbox файл как выходной файл из другого нода: nodeA=[ description=[ OutputSandbox={"gsiftp://neo.datamat.it:5432/tmp/a.dat, …}; ……………. nodeB=[ description=[ InputSandbox={root.nodes.nodeA.description.OutputSandbox[0], …}; …………….
19 Enabling Grids for E-sciencE 19 DAG job : OutputSandbox JDL описание DAG не может содержать OutputSandbox атрибута в корневой секции, а только в JDL описании нодов. OutputSandbox DAGа в целом рассматривается как сумма всех output sandboxes нодов. Когда glite-wms-job-output команда выдается для DAG ID, она запрашивает выходные файлы всех нодов, но сохраняет их в разных поддиректориях, соответствующих разным нодам. Это позволяет избежать перезаписи файлов с одинаковыми именами, которые относятся к разным нодам. Имена поддиректорий соответствуют именам нодов.
20 Enabling Grids for E-sciencE 20 DAG job: get status > glite-wms-job-status BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Running Status Reason: unavailable Destination: dagman Submitted: Sun Jul 16 21:46: CEST ************************************************************* Nodes information: Status info for the Job : Node Name: nodeA Current Status: Scheduled Status Reason: Job successfully submitted to Globus Destination: grid-ce.bio.dist.unige.it:2119/jobmanager-lcgpbs-short Submitted: Sun Jul 16 21:46: CEST ************************************************************* Status info for the Job : Node Name: nodeB Current Status: Submitted … … … … … … … … … … … … … … … … …...
21 Enabling Grids for E-sciencE 21 Job collection Job Collection (wmproxy submission)
22 Enabling Grids for E-sciencE 22 Job Collection Job collection- это набор независимых задач, который пользователь может запустить и мониторировать одним запросом Задачи из Job collection запускаются как DAG ноды без зависимостей (dependencies) JDL для описания Job collection: [ Type = "collection"; nodes = { [ ], … }; ]
23 Enabling Grids for E-sciencE 23 Job collection example [ type = "collection"; InputSandbox = {"date.sh"}; RetryCount = 0; nodes = { [ file ="jobs/job1.jdl" ; ], [ [ NodeName = job2; Executable = "/bin/sh"; Arguments = "date.sh"; Stdoutput = "date.out"; StdError = "date.err"; OutputSandbox ={"date.out", "date.err"}; ] ], [ file ="jobs/job3.jdl" ; ] }; ] All nodes will share this Input Sandbox
24 Enabling Grids for E-sciencE 24 Job collection via command Набор независимых задач может быть запущен в gLite с использованием нового параметра –collection в команде glite-wms-job-submit: glite-wms-job-submit –collection ……. Эта опция позволяет определить путь до директории, которая содержит JDL файлы независимых задач, составляющих требуемую коллекцию. Команда glite-wms-job-submit сама создаст соответствующий JDL с типом Type=collection и запустит задание в gLite.
25 Enabling Grids for E-sciencE 25 Parametric Job
26 Enabling Grids for E-sciencE 26 Parametric Job Parametric job- это задание, где один или более ее атрибутов параметризируемы и для каждого значения параметра создается отдельная задача Мониторирование и управление заданием производится через уникальный ID всего задания [ JobType = "Parametric"; Executable = "/bin/sh"; Arguments = "md5.sh input_PARAM_.txt"; InputSandbox = {"md5.sh", "input_PARAM_.txt"}; StdOutput = "out_PARAM_.txt"; StdError = "err_PARAM_.txt"; Parameters = 10000; ParameterStart = 1000; ParameterStep = 100; OutputSandbox={"out_PARAM_.txt","err_PARAM_.txt"}; ]
27 Enabling Grids for E-sciencE 27 Parametric Job Запуск такого JDL приведет к генерации N задач, где N = (Parameters – ParameterStart)/ParameterStep Задача получает присвоенное ей значение параметра через переменную окружения (environment) ParamenterValue, которая устанавливается скриптом JobWrapper перед запуском задачи. [ JobType = "Parametric"; Executable = "/bin/sh"; Arguments = "md5.sh input_PARAM_.txt"; InputSandbox = {"md5.sh", "input_PARAM_.txt"}; StdOutput = "out_PARAM_.txt"; StdError = "err_PARAM_.txt"; Parameters = 10000; ParameterStart = 1000; ParameterStep = 100; OutputSandbox ={"out_PARAM_.txt","err_PARAM_.txt"}; ]
28 Enabling Grids for E-sciencE 28 Parametric Job Parameter может быть списком строк InputSandbox (если есть) должен быть согласован с параметрами [ui-test] > cat param2.jdl [ JobType = "Parametric"; Executable = /bin/cat"; Arguments = input_PARAM_.txt; InputSandbox = "input_PARAM_.txt"; StdOutput = "myoutput_PARAM_.txt"; StdError = "myerror_PARAM_.txt"; Parameters = {EARTH,MOON,MARS}; OutputSandbox = {myoutput_PARAM_.txt}; ] [ui-test] > ls inputEARTH.txt inputMARS.txt inputMOON.txt param2.jdl ls inputEARTH.txt inputMARS.txt inputMOON.txt param2.jdl">
29 Enabling Grids for E-sciencE 29 The NodesCollocation attribute is a Boolean attribute. When set to true, i.e. NodesCollocation = true; makes the WMS submit all the instances of the parametric job to the same CE selected performing the matchmaking based on the Requirements and Rank expression specified in the JDL. –The NodesCollocation attribute is not mandatory. If not specified in the JDL it is assumed to be set to false. NodesCollocation attribute
30 Enabling Grids for E-sciencE 30 Interactive job
31 Enabling Grids for E-sciencE 31 Interactive job Это задача, стандартный ввод/выод которой перенаправляется на UI в real time. UI Listener Process X window or std no-gui WN Pipe IN Process Pipe Out Process
32 Enabling Grids for E-sciencE 32 Interactive Jobs Специфицируется установкой JobType = Interactive в JDL Когда interactive job запускается, открывается окно для stdin, stdout, stderr потоков
33 Enabling Grids for E-sciencE 33 MPI job Введение в MPI
34 Enabling Grids for E-sciencE 34 MPI job Возможность выполнения параллельных задач является важным требованием к GRID инфраструктуре Наиболее используемая библиотека для поддержки параллельных задач является MPI (Message Passing Interface) В настоящее время параллельные задачи могут выполняться только на одном Computing Elements (CE) несколько различных проектов, касающихся возможности выполнения параллельных задач на WNs разных Ces, находятся сейчас в стадии разработки.
35 Enabling Grids for E-sciencE 35 MPI job Для того, чтобы MPI задача могла выполняться, должны быть выполнены следующие условия: MPICH software должно быть установлено на каждом из WNs CE. некоторые MPI приложения требуют разделяемую файловую систему среди WNs, на которых приложение будет выполняться. – Переменная VO_ _SW_DIR будет содержать имя директории вслучае SHARED filesystem. – Переменная VO_ _SW_DIR будет содержать. если NO SHARED filesystem.
36 Enabling Grids for E-sciencE 36 MPI job С точки зрения клиента, задачи, которые должны выполняться как MPI, специфицируются установкой JDL JobType атрибута в MPICH, а также NodeNumber атрибута. Например: … JobType = MPICH; NodeNumber = 4; … This attribute defines the required number of CPUs needed for the application
37 Enabling Grids for E-sciencE 37 MPI job Когда эти два атрибута включаются в JDL, User Interface (UI) автоматически добавляет следующее выражение в JDL Requirements атрибут, чтобы определить те ресурсы (CE), на которых приложение может выполняться: (other.GlueCEInfoTotalCPUs >= NodeNumber) && Member (MPICH,other.GlueHostApplicationSoftwareRunTimeEnvironment)
38 Enabling Grids for E-sciencE 38 Checkpontable job Checkpointable job
39 Enabling Grids for E-sciencE 39 Logical Checkpointable Jobs Это задача, котороя может быть разбита на несколько шагов На каждом шаге состояние задачи может быть сохранено в LB и восстановлено позже в случае сбоя Задача может начать свое выполнение с сохраненного ранее состояния STEP 1STEP 2STEP 3STEP 4 JOBS START JOBS END A BCD
40 Enabling Grids for E-sciencE 40 Checkpointable Jobs: JDL Structure JobType = checkpointable; Executable = …; JobSteps = list int | list string; CurrentStep = int > = 0; Argument = …; Requirements = …; Rank = ; Mandatory Optional
41 Enabling Grids for E-sciencE 41 Partitionable job
42 Enabling Grids for E-sciencE 42 Partitionable job JobType=partitionable; JobSteps={st0",st1", … st10"}; CurrentStep=0; Executable=hand.exe Prejob=[ ]; Postjob=[ JobType=checkpointable; ]; Цель- подзадания с одним и тем же исполняемым файлом, который требуется выполнить многократно с различными входными данными.
43 Enabling Grids for E-sciencE 43 Questions
44 Enabling Grids for E-sciencE 44
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.