Griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno LEZIONE N. 16 Resource Management Systems: PBS, MAUI Il Computing Element Griglie computazionali - a.a. 2009-10 1
Singoli server Risorse Computazionali Cluster di calcolatori ovvero server interconnessi tramite una LAN Macchine Multiprocessore Griglie computazionali - a.a. 2009-10 2
CLUSTER DI PC Griglie computazionali - a.a. 2009-10 3
CLUSTER DI PC Griglie computazionali - a.a. 2009-10 4
Cluster di server ad alte prestazioni Griglie computazionali - a.a. 2009-10 5
Griglie computazionali - a.a. 2009-10 6
High Throughput Computing - HTC Una grande quantità di dati indipendenti da processare Calcolo in parallelo e non calcolo parallelo Prestazioni di insieme piuttosto che alte prestazioni del singolo programma. Ridondanza piuttosto che totale affidabilità dei singoli componenti. Applicazioni nella fisica delle alte energie, nella biologia, nell utilizzo condiviso di risorse da parte di molti utenti indipendenti Condor è un sistema HTC Griglie computazionali - a.a. 2009-10 7
High Performance Computing - HPC Grande potenza computazionale da utilizzare nel singolo programma. Dati complessi e correlati. Porta naturalmente al calcolo parallelo Sviluppo nei supercomputer e nel cluster computing. Richiede totale affidabilità del sistema. Applicazioni nelle previsioni metereologiche, nella mappatura del DNA, nelle simulazioni geofisiche Griglie computazionali - a.a. 2009-10 8
Il Calcolo Parallelo Limiti del calcolo seriale su singolo computer: limiti fisici: numero di cicli al secondo, velocità di trasmissione. limiti tecnici: clock estremamente alti causano alta dissipazione. limiti applicativi: insufficienza della memoria limiti economici: utilizzare Commodity off the shelf Notare che: già adesso i processori seriali presentano un parallelismo interno (funzionale): più pipeline indipendenti già adesso un singolo chip può presentare più processori Griglie computazionali - a.a. 2009-10 9
Modelli di programmazione parallela Ci occupiamo del paradigma Message passing, che è di livello più basso, poiché è quello usato in GRID. Griglie computazionali - a.a. 2009-10 10
Il gestore di risorse e lo scheduler Un ambiente di High Throughput Computing (HTC) può essere realizzato da un sistema software per l'esecuzione di lavori (job) in modalità a lotti (batch) su workstation collegate in rete: regolamentare l esecuzione di un gran numero di programmi ottimizzare l utilizzo delle risorse di un cluster. Utilizzo un Resource Manager, in particolare un sistema di code: Il sistema si basa sulla definizione di "code" (queue), analoghe ad una coda di stampa. Un programma destinato all'esecuzione (JOB) viene sottomesso ad una coda e il Resource Manager si occupa di assegnarlo ad un processore disponibile, sulla base del carico corrente e delle caratteristiche del job. Lo scheduler stabilisce la priorità di esecuzione di ciascun job in base alle policy implementate. Griglie computazionali - a.a. 2009-10 11
LRMS (Local( Resource Management System) In ambito GRID l insieme del sistema di code e dello scheduler si chiama LRMS (Local Resource Management System) Ci occupiamo di uno dei sistemi più diffusi in Grid per la gestione delle risorse distribute a livello LOCALE. Un SITO Grid è un insieme di risorse sotto un singolo dominio amministrativo, generalmente su LAN. Un sito, al suo interno, gestisce le risorse in modo non molto diverso da un cluster tradizionale. Griglie computazionali - a.a. 2009-10 12
PBS/Torque + MAUI scheduler PBS (Portable Batch System) ed il suo successore open source Torque, sono tra i sistemi di code maggiormente utilizzati al interno dei siti Grid. MAUI/MOAB è lo scheduler generalmente associato a PBS per implementare policies e algoritmi elaborati di condivisione delle risorse Griglie computazionali - a.a. 2009-10 13
PBS/Torque PBS ha una architettura client/server e prevede, un unico master node che esegue il demone pbs_server e un numero arbitrario di nodi slave che eseguono il demone pbs_mom. I nodi slave sono i nodi che eseguiranno effettivamente i job Griglie computazionali - a.a. 2009-10 14
PBS/Torque PBS Ha il ruolo di creare e gestire le code job, definire gli utenti che possono utilizzarle e le risorse alle quali si riferiscono. Il PBS server può essere interrogato e fornire informazioni sulle risorse computazionali presenti, sulle code configurate, sui job presenti sulle singole code, sul loro stato. Griglie computazionali - a.a. 2009-10 15
PBS/Torque Quando arriva un job al server PBS esso non fa altro che aggiungerlo alla coda di destinazione ed aspetta che lo scheduler gli dia il comando per mandare il job in esecuzione sulle risorse Griglie computazionali - a.a. 2009-10 16
[root@atlasce01 ~]# qstat -q server: atlasce01.na.infn.it PBS/Torque Queue State Memory CPU Time Walltime Node Run Que Lm ---------------- ------ -------- -------- ---- - --- --- -- ---- cert -- 48:00:00 72:00:00 -- 0 0 -- E R atlas -- 48:00:00 72:00:00 -- 193 0 -- E R grid -- 48:00:00 72:00:00 -- 0 0 -- E R alice -- 48:00:00 72:00:00 -- 0 0 -- E R lhcb -- 48:00:00 72:00:00 -- 0 0 -- E R atlas_short -- 12:00:00 24:00:00 -- 0 0 -- E R cms -- 48:00:00 72:00:00 -- 0 0 -- E R ----- ----- 193 0 Griglie computazionali - a.a. 2009-10 17
PBS/Torque [root@atlasce01 ~]# qstat -an more atlasce01.na.infn.it: Req'd Req'd Elap Job ID Username Queue NDS TSK Memory Time S Time Jobname SessID -------------------- -------- -------- ---------------- ------ - ---- --- ------ ----- - ----- 2128881.atlasce0 pilatlas atlas 1 -- -- 48:00 R 31:02 STDIN 26444 atlaswn12 2128883.atlasce0 pilatlas atlas 1 -- -- 48:00 R 31:15 STDIN 3456 atlaswn13 2128885.atlasce0 pilatlas atlas 1 -- -- 48:00 R 31:18 STDIN 12107 atlaswn11 2128886.atlasce0 pilatlas atlas 1 -- -- 48:00 R 31:40 STDIN 17038 atlaswn25 Griglie computazionali - a.a. 2009-10 18
scheduler Lo scheduler ha il compito di mandare in esecuzione i job che si trovano nelle differenti code, secondo delle politiche di priorità, dalle più semplici a quelle più complesse che prevendono l uso di pesi differenti. MAUI è un software che realizza uno scheduler Griglie computazionali - a.a. 2009-10 19
Maui / Moab scheduler Maui Cluster Scheduler, il precursore di Moab Cluster Suite, è un job scheduler open source per cluster e supercomputers. É un tool ottimizzato e configurabile, capace di supportare un array di scheduling policies, priorità dinamiche, preallocazione delle risorse, capacità di fairshare capabilities. Maui e Moab sono in uso in centinaia di siti governativi, accademici e commerciali in tutto il mondo. Griglie computazionali - a.a. 2009-10 20
Maui Job Prioritization Un sito ha spesso numerosi obiettivi indipendenti: Massimizzare l utilizzo delle risorse Dare preferenza a utenti di progetti specifici Fare in modo che i job non restino in coda per più di un certo tempo L approccio di Maui è di assegnare dei pesi ai diversi obiettivi, in modo che un valore complessivo della priorità possa essere associato ad ogni decisione di scheduling. Con i job prioritizzati, lo scheduler può soddifare gli obiettivi del sito lanciando i job in ordine di priorità. Griglie computazionali - a.a. 2009-10 21
Calcolo della priorità di un job La prorità di un job risulta come somma pesata di un insieme di componenti. Ogni componente è scomposto in sottocomponenti, dando la possibilità di fare un tuning fine della priorità Il valore di ogni sottocomponente è determinato dalla formula: <COMPONENT WEIGHT> * <SUBCOMPONENT WEIGHT> * <PRIORITY SUBCOMPONENT VALUE> Esistono un gran numero di componenti e sottocomponenti, ma un sito configura solo quelli che interessano per i suoi obiettivi. Di default il valore dei pesi di componenti e sottocomponenti è settato a 1 e 0 rispettivamente. L unica eccezione è per il sottocomponente QUEUETIME, il cui peso è 1 di default. Il comportamento default di Maui è quindi che la priorità totale di un job dipende solo dal tempo in coda, risultando quindi come una semplice FIFO Griglie computazionali - a.a. 2009-10 22
Maui job priority: Alcuni componenti e subcomponenti Griglie computazionali - a.a. 2009-10 23
Gestore di code e scheduler In un installazione tipica lo scheduler e il server di gestione di code si trovano su una macchina di frontend, mentre gli slave del gestore di code sono sulle macchine di calcolo. I client del gestore di code si trovano sulle macchine di frontend. Griglie computazionali - a.a. 2009-10 24
Il Computing Element Il Computing Element (CE) in ambito glite è il servizio di front-end verso le risorse di calcolo. Esso si compone Gatekeeper LCMAPS LCAS LRMS Sistema informativo locale Esegue l accounting Griglie computazionali - a.a. 2009-10 25
Il Computing Element Il Gatekeeper è il componente che esegue il management dei job in arrivo. Controlla i certificati Accetta in job in ingresso (com. sicura) Smista i job verso gli scheduler Recupera l output dal LRMS Restituisce l output al WMS (com. sicura) Griglie computazionali - a.a. 2009-10 26
Il Computing Element LCAS Local Centre Authorization Serivce È il componente che autorizza gli utenti sulle risorse a livello di sito ed a livello di VO. Interagisce con il servizio VOMS Griglie computazionali - a.a. 2009-10 27
Il Computing Element LCMAPS Local Credential Mapping Service È il componente che esegue il mapping del subject di un certificato su un utente locale alla risorsa computazionale, preoccupandosi di mappare i permessi e i privilegi espressi a livello VOMS in permessi e privilegi del sistema operativo Il Mapping può essere statico o dinamico Griglie computazionali - a.a. 2009-10 28
ESEMPIO DI MAPPING Il Computing Element "/C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Vania Boccia".matisse001 "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Antonio de Candia".matisse002 "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Francesco Maria Taurino".matisse003 "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Nicola Spinelli".matisse004 "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Raffaele Mennillo".matisse005 "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Rosario Esposito".matisse006 "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Silvio Pardi".sgmmatisse001 "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Tiziana Abete".matisse008 "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=giovanni cantele".matisse009 Griglie computazionali - a.a. 2009-10 29
Il Computing Element LRMS (Local Resource Management System) l insieme del sistema di code e dello scheduler si chiama Sistema informativo locale fornisce informaizoni all site-bdii sullo stato dell occupazione delle CPU Griglie computazionali - a.a. 2009-10 30
I WORKER NODE I Workernode in glite (WN) sono le macchine che eseguono la computazione pura e si compongono di Demone slave per il sistema di code Librerie scientifiche Griglie computazionali - a.a. 2009-10 31
JOB From WMS COMPUTING ELEMENT Gatekeeper LCAS No reject Sistema Informativo yes LCMAPS DN->localuser LRMS Schedula Job sulla coda WN1 WN1 WN1WN1 Accounting-DGAS Griglie computazionali - a.a. 2009-10 32
CONSIDERAZIONI DI SICUREZZA Hanno bisogno di certificati per parlasi tra loro User Interface (certificato utente) Computing Element (certificato server) Storage Element (certificato server) WMS (certificato server) VOMS (certificato server) LFC (certificato server) HLR (certificato server) FTS (certificato server) Griglie computazionali - a.a. 2009-10 33
CONSIDERAZIONI DI SICUREZZA NON hanno bisogno di certificati SITE-BDII TOP-BDII User Interface (non serve certificato server) WORKER NODE Griglie computazionali - a.a. 2009-10 34
CONSIDERAZIONI DI SICUREZZA IN PARTICOLARE Le comunicaizoni tra WN e CE avvengono in maniera sicura ma tramite chiavi ssh La sottomissione job sui CE dal WMS avviene tramite connessioni sicure GSI Il ritorno dell output dal CE verso il WMS avviene tramite connessioni sicure GSI Le interrogazioni al site-bdii o al top-bdii avvengono con chiamate ldap in chiaro Griglie computazionali - a.a. 2009-10 35