Introduzione alle griglie computazionali - a.a LEZIONE LEZIONE N. 9 WMS (Workload Management Service) JDL (Job Description Language) Matchmaking Job submission Introduzione alle griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea in Informatica – III Anno
Introduzione alle griglie computazionali - a.a Workload Management Service (1/2) Lo scopo del WMS e lo scheduling distribuito dei job in ambiente Grid funzionalita offerte job submission job execution job status monitoring output retrieve
Introduzione alle griglie computazionali - a.a Workload Management Service (2/2) componenti User interface (UI) punto di accesso a Grid per gli utenti Resource Broker (RB) servizio di scheduling distribuito Job Submission Service (JSS) servizio di job submission Logging and Bookkeeping Service (LB) servizio di job monitoring
Introduzione alle griglie computazionali - a.a Job Description Language (1/8) informazioni da specificare per lesecuzione di un Grid-job requirement fisici del job (spazio disco, memoria,...) requirement logici del job (environment,...) data requirement (logical file name,...) e possibile specificare questi parametri utilizzando il JDL (Job Description Language)
Introduzione alle griglie computazionali - a.a Job Description Language (2/8) caratteristiche basato su Condor ClassAd (CLASSified ADvertisement language) un ClassAd e una sequenza di coppie (attributo, valore) [ attr1 = value1 attr2 = value2... attrn = valuen ]
Introduzione alle griglie computazionali - a.a Job Description Language (3/8) categorie di attributi job attribute definiscono le caratteristiche del job resource attribute computing resource attribute specificano i requirement in termini di risorse di computing utilizzano il prefisso other. storage resource attribute specificano i requirement in termini di risorse di storage (protocollo di accesso, logical file name,...)
Introduzione alle griglie computazionali - a.a Job Description Language (4/8) job attributes Executable nome del file che contiene il codice eseguibile Arguments argomenti da fornire alleseguibile StdInput, StdOutput, StdErr nomi dei file che conterranno standard input / output / error del job Environment lista di attributi relativi allenvironment (segue)
Introduzione alle griglie computazionali - a.a Job Description Language (5/8) job attributes InputSandbox lista di file locali (rispetto alla UI) necessari allesecuzione del job OutputSandbox lista di file (generati dal job) da recuperare dopo lesecuzione del job
Introduzione alle griglie computazionali - a.a Job Description Language (6/8) computing resource attributes Requirements - requirement del job rispetto alle risorse di computing - vengono specificati utilizzando i nomi degli attributi definiti nellInformation Service Rank - specifica una preferenza rispetto ad un insieme di risorse che soddisfano i requirement richiesti - viene specificato utilizzando i nomi degli attributi definiti nellInformation Service
Introduzione alle griglie computazionali - a.a Job Description Language (7/8) storage resource attributes InputData PFN (Physical File Name) o LFN (Logical File Name) da utilizzare come input del job ReplicaCatalog nome del Replica Catalog da utilizzare per la risoluzione PFN LFN DataAccessProtocol protocollo da utilizzare per accedere al PFN OutputSE nome dello Storage Element da utilizzare per la copia dei file di output del job
Introduzione alle griglie computazionali - a.a Job Description Language (8/8) esempio di JDL file Executable = gridTest; StdError = stderr.log; StdOutput = stdout.log; InputSandbox = {home/joda/test/gridTest}; OutputSandbox = {stderr.log, stdout.log}; InputData = LF:testbed ; ReplicaCatalog = ldap://sunlab2g.cnaf.infn.it:2010/ lc=test, rc=WP2 INFN Test, dc=infn, dc=it; DataAccessProtocol = gridftp; Requirements = other.Architecture == INTEL && other.OpSys == LINUX && other.FreeCpus >= 4; Rank = other.MaxCpuTime;
Introduzione alle griglie computazionali - a.a Comandi della User Interface edg-job-list-match lista delle risorse che soddisfano i requirement specificati nel file JDL (il RB effettua il matchmaking senza sottomettere il job) edg-job-submit sottomette job su una delle risorse che soddisfano i requirement specificati nel file JDL edg-job-cancel cancellazione di un job edg-job-status visualizza lo stato di un job edg-job-get-output effettua lo stage-out dei file specificati tramite lattributo OutputSandbox edg-job-get-logging-info visualizza la sequenza completa delle transizioni di stato di un job (utilizzato per debugging)
Introduzione alle griglie computazionali - a.a Matchmaking (1/3) Resource Broker il suo compito e quello di individuare la risorsa di computing migliore su cui sottomettere il job dellutente interagisce con Information Service e Data Management Service il Computing Element selezionato deve soddisfare i requirement specificati nella descrizione del job (JDL file) se piu Computing Element soddisfano i requirement allora viene scelto il Computing Element con Rank piu alto
Introduzione alle griglie computazionali - a.a Matchmaking (2/3) scenari possibili 1.direct job submission -lutente specifica il Computing Element su cui deve essere sottomesso il job -il Resource Broker non effettua il matchmaking 1.job submission senza requirement su storage resource -il Resource Broker effettua il matchmaking interroga lInformation Service per ottenere lelenco delle risorse che soddisfano i requirement e le credenziali dellutente se piu Computing Element soddisfano i requirement allora viene scelto il Computing Element con Rank piu alto (segue)
Introduzione alle griglie computazionali - a.a Matchmaking (3/3) 1.job submission con requirement su storage resource -il Resource Broker effettua il matchmaking interroga il Data Management Service per ottenere lelenco degli Storage Element che contengono i file richiesti interroga lInformation Service per ottenere lelenco delle risorse che soddisfano i requirement e le credenziali dellutente seleziona (dalla lista di Computing Element ottenuta) i Computing Element vicini agli Storage Element ottenuti al passo 1 se il risultato della selezione consiste in piu Computing Element allora viene scelto il Computing Element con Rank piu alto
Introduzione alle griglie computazionali - a.a Job submission (1/10) UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information Service (IS) Replica Catalogue (RC)
Introduzione alle griglie computazionali - a.a Job submission (2/10) UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information Service (IS) Replica Catalogue (RC) Job Submit Event Input Sandbox submitte d Job Status
Introduzione alle griglie computazionali - a.a Job submission (3/10) UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Computing Element (CE) Information Service (IS) Replica Catalogue (RC) submitte d waiting Storage Element (SE) Job Status
Introduzione alle griglie computazionali - a.a Job submission (4/10) UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Computing Element (CE) Information Service (IS) Replica Catalogue (RC) submitte d waiting ready Storage Element (SE) Job Status
Introduzione alle griglie computazionali - a.a Job submission (5/10) UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS)Computing Element (CE) Information Service (IS) Replica Catalogue (RC) submitte d waiting ready Broke rInfo schedule d Storage Element (SE) Job Status
Introduzione alle griglie computazionali - a.a Job submission (6/10) UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Computing Element (CE) Information Service (IS) Replica Catalogue (RC) submitte d waiting ready schedule d Input Sandbox running Storage Element (SE) Job Status
Introduzione alle griglie computazionali - a.a Job submission (7/10) UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Computing Element (CE) Information Service (IS) Replica Catalogue (RC) submitte d waiting ready schedule d Job Status running Storage Element (SE) Job Status
Introduzione alle griglie computazionali - a.a Job submission (8/10) UI JDL Logging & Bookkeeping Resource Broker Job Submission Service Storage Element (SE) Computing Element (CE) Information Service Replica Catalogue (RC) submitte d waiting ready schedule d running Job Status done Job Status
Introduzione alle griglie computazionali - a.a Job submission (9/10) UI JDL Logging & Bookkeeping Resource Broker Job Submission Service Storage Element (SE) Computing Element (CE) Information Service Replica Catalogue (RC) submitte d waiting ready schedule d running done Job Status outputread y Output Sandbox Job Status
Introduzione alle griglie computazionali - a.a UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JS) Storage Element (SE) Compute Element (CE) Information Service (IS) Replica Catalogue (RC) Output Sandbox cleared submitte d waiting ready schedule d running done outputread y Job submission (10/10) Job Status
Introduzione alle griglie computazionali - a.a SUBMITTED WAITING READY SCHEDULED RUNNING DONE(ok) DONE(failed) OUTPUTREADY CLEARED ABORTED DONE(cancelled) Job status
Introduzione alle griglie computazionali - a.a Job submission (1/10)
Introduzione alle griglie computazionali - a.a Job submission (2/10) dg-job-submit myjob.jdl Myjob.jdl Executable = "$(CMS)/exe/sum.exe"; InputData = "LF:testbed "; ReplicaCatalog = "ldap://sunlab2g.cnaf.infn.it:2010/rc=WP2 INFN Test Replica Catalog,dc=sunlab2g, dc=cnaf, dc=infn, dc=it"; DataAccessProtocol = "gridftp"; InputSandbox = {"/home/user/WP1testC","/home/file*, "/home/user/DATA/*"}; OutputSandbox = {sim.err, test.out, sim.log"}; Requirements = other.Architecture == "INTEL" && other.OpSys== "LINUX Red Hat 6.2"; Rank = other.FreeCPUs;
Introduzione alle griglie computazionali - a.a Job submission (3/10)
Introduzione alle griglie computazionali - a.a Job submission (4/10)
Introduzione alle griglie computazionali - a.a Job submission (5/10)
Introduzione alle griglie computazionali - a.a Job submission (6/10)
Introduzione alle griglie computazionali - a.a Job submission (7/10)
Introduzione alle griglie computazionali - a.a Job submission (8/10)
Introduzione alle griglie computazionali - a.a Job submission (9/10)
Introduzione alle griglie computazionali - a.a Job submission (10/10)
Introduzione alle griglie computazionali - a.a Riferimenti The European DataGrid Users Guide European DataGrid WP1 web site (WMS User & Admin Guide and JDL docs) ClassAd