La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Workload Management System (WMS) in gLite Guido Cuscela INFN - Bari II Corso di formazione INFN su aspetti pratici.

Presentazioni simili


Presentazione sul tema: "Workload Management System (WMS) in gLite Guido Cuscela INFN - Bari II Corso di formazione INFN su aspetti pratici."— Transcript della presentazione:

1 www.ccr.infn.it http://grid.infn.it/ Workload Management System (WMS) in gLite Guido Cuscela INFN - Bari II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID

2 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 2 Outline Panoramica dell’architettura –Componenti e servizi –Ciclo di vita del job Job Description Language –JDL Document –Tipi di richieste –Tipi di job Command Line Interface –Sottomissione dei job –Recupero dell’output

3 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 3 Panoramica dell’architettura

4 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 4 Panoramica dell’architettura Workload Management System (WMS)

5 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 5 Components and Services User Interface (UI) –E’ il terminale per accedere ai servizi della griglia –Command Line Interface (CLI) –Portali grid (come GENIUS) WMProxy –Punto di accesso al Workload Management System –Smista i job sulle varie risorse –Implementa algoritmi di schedulazione Logging and Bookkeeping (LB) –Tiene traccia delle azioni utente –Tiene traccia delle variazioni di stato dei job Computing Element (CE) –E’ la risorsa computazionale che esegue job –Presenta un’interfaccia indipendente dal sistema sottostante

6 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 6 Job Life Cycle (1/4) L’utente descrive un job tramite il Job Description Language (JDL) document. Alcuni input files (Input Sandbox) possono essere agganciati al JDL. L’utente sottomette il job e aspetta per qualche risposta Il WMProxy riceve il file JDL e I file di input a corredo e li salva localmente. Genera e invia indietro all’utente un jobid appena generato e univoco nel tempo e nello spazio. Da adesso in poi l’utente userà questo jobid per identificare quel job

7 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 7 Job Life Cycle (2/4) Il Resource Broker esegue un algoritmo (matchmaking) per decidere a quale CE inviare il job in funzione di una funzione di fitness. Prima o poi il job verrà trasherito (con tutta la Input Sandbox) al CE per l’esecuzione. Il Computing Element accetta e mette in coda il jobThe job starts execution over the Local Resources Management System (LRMS)

8 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 8 Job Life Cycle (3/4) A terminazione del job, l’Output Sandbox viene inviata indietro al WMProxy Il WMProxy salva localmente tale output Allo stesso tempo il Computing Element notifica al L&B la terminazione del job Adesso l’output è pronto per essere scaricato dal WMProxy

9 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 9 Job Life Cycle (4/4) L’utente interroga il L&B per verificare lo stato dei suoi job e realizza che il job ha terminato la sua esecuzione. L’utente scarica l’Ouput Sandbox direttamente dal WMProxy Il WMProxy ripulisce il repository locale Il job ha terminato la sua esecuzione

10 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 10 Diagramma di stato del job Submitted: Il job è stato creato sulla UI ma non ancora sottomesso Waiting: Il job è in fase di processamento da parte del WMProxy Ready: Il job è stato processato ma non inviato al CE destinazione Scheduled: Il job è nel CE in coda in attesa di essere eseguito Running: Il job sta girando sul Computing Element Done: Il job ha terminato la sua esecuzione Aborted: Il job è stato abortito dal WMS Cancelled: Il job è stato annullato dall’utente Cleared: Il job ha terminato e l’output è stato scaricato

11 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 11 Matchmaking Algorithm L’algoritmo di matchmaking –Decide come schedulare i job sulle risorse –Usa l’Information System per verificare la disponibiltà di risorse Prima fase: selezione –L’algoritmo decide quali CE sono adatti a eseguire il job in questione –Questo viene fatto valutando l’attributo Requirements del JDL Seconda fase: Ranking –La funzione di fitness Rank viene valutata per I CE candidati (suitable) –Il job viene sottomesso al CE che massimizza questa funzione

12 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 12 Job Description Language (JDL)

13 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 13 Job Description Language E’ un linguaggio per la descrizione dei job E’ composto da un insieme di elementi testuali Nel caso più semplice si può scrivere come semplice sequenza di coppie Attribute-Valore I commenti sono C-like –/* */ –oppure // –In aggiunta, un segno di # a inizio riga identifica un commento

14 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 14 JDL Attributes Lista di Attributi assolutamente non esaustiva TypeDescrive se il JDL si riferisce a un “Job”,“DAG” o “Collection” JobType“Interactive”, “MPICH”... (se Type=“Normal”) ExecutableL’eseguibile da lanciare ArgumentsLista di argomenti per l’eseguibile StdInputFile locale da usare come standard input StdOutput and StdError File su quali redirigere lo standard output e lo stand error InputSandboxLista di file in attachment OutputSandboxLista di file da recuperare a terminazione di esecuzione RequirementsEspressione booleana che verifica se un CE è adatto Rank RetryCount Espressione che valuta la bontà di un CE Numero max di tentativi di risottomissione

15 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 15 JobType Normal –Un eseguibile batch Interactive –Richiede l’interazione dell’utente MPICH –Per sfruttare il framework MPI (Message Passing Interface) Partitionable –Può essere partizionato in più sottojob Checkpointable –L’esecuzione può essere “marcata” in alcuni punti per essere ripresa più tardi Parametrici –Job simili che differescono solo per alcuni attributi parametrici

16 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 16 Esempio di Job “Normal” $> cat hostname.jdl Type = “Job”; JobType = “Normal”; Executable = “/bin/sh/”; Arguments = “start_hostname.sh”; StdError = “stderr.log”; StdOutput = “stdout.log”; InputSandbox = “start_hostname.sh”; OutputSandbox = {“stderr.log”,”stdout.log”}; RetryCount = 7; $> cat start_hostname.sh #!/bin/sh sleep 5 hostname –f E’ un job normale File sui quali redirigere lo standard output e lo standard error L’eseguibile da lanciare con gli argomenti File in attachment al JDL File da recuperare a terminazione del job Max numero di tentativi di risottomissione

17 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 17 Requirements & Rank Requirements = –Espressione booleana con sintassi C –Serve a verificare se il candidato CE soddisfa i requisiti –Dentro l’espressione, il CE viene indicato con other. –Eg: Requirements = other.GlueCEInfoLRMSType == "PBS“ && other.GlueCEInfoTotalCPUs > 2); Rank = –Funzione di fitness C-like che individua la bontà di una risorsa –Dentro l’espressione, il CE viene indicato con other. –Eg: Rank = other.GlueCEPolicyMaxRunningJobs other.GlueCEStateRunningJobs Catania, Tutorial TriGrid VL, 27-28.07.2006

18 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 18 Esempio: sphere.jdl $> cat sphere.jdl #author: giuseppe.larocca@ct.infn.it Type = "Job"; JobType = "Normal"; Executable = "/bin/sh"; MyProxyServer="lxshare0207.cern.ch"; StdOutput = "sphere.out"; StdError = "sphere.err"; InputSandbox = {"start_sphere.sh","sphere1.pov","sphere1.ini"}; OutputSandbox = {"sphere.out","sphere.err","final_sphere.gif"}; RetryCount = 7; Arguments = "start_sphere.sh"; Requirements = Member("POVRAY-3.5",other.GlueHostApplicationSoftwareRunTimeEnvironment); Seleziona solo i CE dove POVRAY è installato

19 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 19 Example: pds2jpg-ASAR- Demo.jdl $> cat pds2jpg-ASAR-Demo.jdl [ VirtualOrganisation = "gilda"; Executable = "/bin/bash"; Arguments = "pds2jpg_ASAR_install.sh ASA_APG_1PXPDE20020819_093043_000000152008_00394_02452_0000"; StdOutput = "pds2jpg_ASAR.out"; StdError = "pds2jpg_ASAR.err"; OutputSandbox = { "ASA_APG_1PXPDE20020819_093043_000000152008_00394_02452_0000-b1.jpg", "ENVISAT_Product_courtesy_of_European_Space_Agency", "pds2jpg_ASAR.out", "pds2jpg_ASAR.err“ }; RetryCount = 3; JobType = "normal"; Type = "Job"; InputSandbox = {"./pds2jpg_ASAR_install.sh","./beam20.tar.gz"}; rank = (-other.GlueCEStateEstimatedResponseTime); requirements = (other.GlueCEStateStatus=="Production") ] Fitness function per definire la bonta di un CE Installer attached al JDL

20 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 20 Job parametrici (1/3) consiste nella sottomissione di un insieme di job identici eccetto che per un parametro il cui valore cambia è possibile tracciare ciascun job separatamente … … oppure tutti insieme come job parametrico una variabile speciale (_PARAM_) indica il valore variabile tra gli attributi _PARAM_ assume valori numerici generati automaticamente oppure stringhe tratte da una lista

21 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 21 Job parametrici (2/3) Parameters = un intero che indica il numero di passi o una lista di stringhe (ogni stringa indica il nome di uno dei passi) ParameterStart, ParameterStep = ParameterStart indica il primo valore da assegnare ParameterStep indicata il valore di incremento tra due successivi valori assunti da _PARAM_ NodesCollocation = se è “vero”, tutti i job sono inviati allo stesso CE

22 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 22 Job parametrici (3/3) Esempio: [ JobType = "Parametric"; Executable = "myjob.exe"; StdInput = "input_PARAM_.txt"; StdOutput = "output_PARAM_.txt"; StdError = "error_PARAM_.txt"; Parameters = 100; ParameterStart = 1; ParameterStep = 1; InputSandbox = {"myjob.exe", "input_PARAM_.txt"}; OutputSandbox = {"output_PARAM_.txt","error_PARAM_.txt"}; ]

23 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 23 Tipi di JDL (Type) Il JDL permette di descrivere: –Job: Un job semplice (default) –DAG: un Direct Acyclic Graph di job dipendenti –Collection: Un insieme di job che hanno attributi comuni Catania, Tutorial TriGrid VL, 27-28.07.2006

24 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 24 Collections E’ un insieme di job –Possono avere alcuni attributi definiti in comune –Vengono lanciati in parallelo dal WMS [ Type = "collection"; InputSandbox = { "input_common1.txt","input_common2.txt" }; nodes = { [ JobType = "Normal"; NodeName = "node1"; Executable = "/bin/sh"; Arguments = "script_node1.sh"; InputSandbox = {"script_node1.sh", root.InputSandbox[0] }; StdOutput = "myoutput1"; StdError = "myerror1"; OutputSandbox = {"myoutput1","myerror1"}; ], [ JobType = "Normal";... ] }; ] BAC

25 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 25 DAG (1/2) E’ un grafo di job –Stabilisce un ordine di esecuzione –Stabilisce dipendenze tra job –Permette di usare file di output di un job come input per un altro job Type=“dag”; nodes = [ a= [ description = [ JobType=“Normal”; Executable=“e.exe”; InputSandBox={…}; ] ] b=[ file=node.jdl; ] ] ABCDEF

26 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 26 DAG (2/2) dependencies = una lista che descrive le dipendenze, le stringhe sono i nomi dei nodi formato:{ { a, b }, { a, c }, { a, d }, { c, e }, { d, e } } esempio : dependencies = { { A, {B, C, D} }; // i nodi “B”, “C” e “D” dipendono da “A” { B, F } { {C, D}, E }; { E, F }; }; max_nodes_running = un intero > 0 che indica il numero massimo di nodi cha possono essere sottomessi simultaneamente dal DAGman ABCDEF

27 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 27 Job MPI Sfrutta il Framework MPI sui CE Il WMProxy: –Seleziona tutti i CE candidati con tale framework –Filtra ulteriormente i CE che hanno WN a sufficienza Attributi –JobType=“MPICH” –NodeNumber=10; // se si richiedono processi [ Type = "Job"; JobType = "MPICH"; Executable = "cpi"; NodeNumber = 2; StdOutput = "cpi.out"; StdError = "cpi.err"; InputSandbox = {"cpi"}; OutputSandbox = {"cpi.err","cpi.out"}; RetryCount = 0; ]

28 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 28 Command Line Interface

29 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 29 glite-wms-job-* commands glite-wms-job-list-match –Reperisce la lista dei CE che soddisfano i requisiti per l’esecuzione glite-wms-job-delegate-proxy –Delega il WMProxy ad usare il proprio proxy glite-wms-job-submit –Sottomette un job alla griglia e ottiene un job id glite-wms-job-status –Verifica lo stato del job interrogando il L&B glite-wms-job-cancel –Annulla un job precedentemente sottomesso alla griglia glite-wms-job-output –Recupero l’output del job una volta terminato con successo

30 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 30 Example: hostname.jdl (1/4) $> glite-wms-job-submit -a -o jobid hostname.jdl Selected Virtual Organisation name (from proxy certificate extension): gilda Connecting to host glite-rb.ct.infn.it, port 7772 Logging to host glite-rb.ct.infn.it, port 9002 ================== glite-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 is: - https://glite-rb.ct.infn.it:9000/Lb6LIhD93S7VYz1RVbCP8A The job identifier has been saved in the following file: /home/fscibi/gLite/Other/jobid ===================================================================== $> cat jobid ###Submitted Job Ids### https://glite-rb.ct.infn.it:9000/Lb6LIhD93S7VYz1RVbCP8A opzione “-o jobid” job id appena generato

31 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 31 Example: hostname.jdl (2/4) $> glite-wms-job-status -i jobid ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : https://glite-rb.ct.infn.it:9000/Lb6LIhD93S7VYz1RVbCP8A Current Status: Done (Success) Exit code: 0 Status Reason: Job terminated successfully Destination: grid004.iucc.ac.il:2119/jobmanager-lcgpbs-short Submitted: Mon Apr 3 12:27:28 2006 CEST ************************************************************* Terminato Computing Element dove il job ha girato

32 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 32 Esempio: hostname.jdl (3/4) glite-wms-job-output -i jobid Retrieving files from host: glite-rb.ct.infn.it ( for https://glite- rb.ct.infn.it:9000/Lb6LIhD93S7VYz1RVbCP8A ) ********************************************************************************* JOB GET OUTPUT OUTCOME Output sandbox files for the job: - https://glite-rb.ct.infn.it:9000/Lb6LIhD93S7VYz1RVbCP8A have been successfully retrieved and stored in the directory: /tmp/glite/glite-ui/fscibi_Lb6LIhD93S7VYz1RVbCP8A ********************************************************************************* $> edg-job-get-output -i jobid --dir Directory di default ove viene scaricato l’output Per specificare una diversa directory

33 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 33 Esempio: hostname.jdl (4/4) glite-wms-job-status -v 3 -i jobid ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : https://glite-rb.ct.infn.it:9000/Lb6LIhD93S7VYz1RVbCP8A Current Status: Cleared Status Reason: user retrieved output sandbox Destination: grid004.iucc.ac.il:2119/jobmanager-lcgpbs-short Submitted: Mon Apr 3 12:27:28 2006 CEST --- - stateEnterTimes = Submitted : Mon Apr 3 12:27:28 2006 CEST Waiting : Mon Apr 3 12:27:37 2006 CEST Ready : Mon Apr 3 12:27:42 2006 CEST Scheduled : Mon Apr 3 12:28:01 2006 CEST Running : Mon Apr 3 12:28:55 2006 CEST Done : Mon Apr 3 12:30:37 2006 CEST Cleared : Mon Apr 3 15:36:39 2006 CEST Aborted : --- Cancelled : --- Unknown : ---https://glite-rb.ct.infn.it:9000/Lb6LIhD93S7VYz1RVbCP8A Variazioni di stato del job

34 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 34 Esempio: sphere.jdl $> glite-wms-job-list-match sphere.jdl Selected Virtual Organisation name (from proxy certificate extension): gilda Connecting to host glite-rb.ct.infn.it, port 7772 *************************************************************************** COMPUTING ELEMENT IDs LIST The following CE(s) matching your job requirements have been found: *CEId* dgt01.ui.savba.sk:2119/jobmanager-lcgpbs-infinite dgt01.ui.savba.sk:2119/jobmanager-lcgpbs-long dgt01.ui.savba.sk:2119/jobmanager-lcgpbs-short egee008.cnaf.infn.it:2119/blah-pbs-infinite egee008.cnaf.infn.it:2119/blah-pbs-long egee008.cnaf.infn.it:2119/blah-pbs-short fenrir.uniandes.edu.co:2119/blah-pbs-infinite fenrir.uniandes.edu.co:2119/blah-pbs-long *************************************************************************** Lista dei CE adatti all’esecuzione deljob

35 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 35 Links JDL user manual –https://edms.cern.ch/file/555796/1/EGEE-JRA1-TEC-555796- JDL-Attributes-v0-7.dochttps://edms.cern.ch/file/555796/1/EGEE-JRA1-TEC-555796- JDL-Attributes-v0-7.doc Simple Job submissions with WMProxy –http://repository.gs.ba.infn.it/twiki/bin/view/GILDA/SimpleJobSub missionhttp://repository.gs.ba.infn.it/twiki/bin/view/GILDA/SimpleJobSub mission Submission of DAGs, collections and parametric jobs –http://repository.gs.ba.infn.it/twiki/bin/view/GILDA/WmProxyUsehttp://repository.gs.ba.infn.it/twiki/bin/view/GILDA/WmProxyUse Sunmission of MPI jobs –http://repository.gs.ba.infn.it/twiki/bin/view/GILDA/MPIJobshttp://repository.gs.ba.infn.it/twiki/bin/view/GILDA/MPIJobs

36 www.ccr.infn.it http://grid.infn.it/ II Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID - 36


Scaricare ppt "Workload Management System (WMS) in gLite Guido Cuscela INFN - Bari II Corso di formazione INFN su aspetti pratici."

Presentazioni simili


Annunci Google