Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoVeronica Mariotti Modificato 8 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.