Capitolo 2
Grid Computing
2.1 The Grid
Il termine Grid (Griglia), nell'ambito delle reti di computer è stato coniato su un paragone con la rete di distribuzione dell'energia elettrica [2]. Infatti, le reti Grid nascono con l'intento di distribuire risorse computazionali così come la rete elettrica distribuisce energia.
Mantenendo questo paragone, attraverso la rete Grid l'utente dovrebbe disporre di una semplice interfaccia che permette di accedere a capacità di calcolo e a dati semplicemente collegandosi alla Griglia, così come l'utente accede all'energia elettrica collegandosi alla rete di distribuzione attraverso la presa.
Allo stesso modo in cui la rete elettrica distribuisce energia proveniente da dierenti fonti, la rete Grid fornisce risorse di calcolo e dati provenienti da diverse organizzazioni geogracamente sparse, che condividono risorse soft- ware e hardware. Il servizio oerto non si limita al semplice accesso a queste risorse condivise, bensì provvede anche al supporto per lavori collaborativi.
2.1.1 Utilizzi
Le griglie di calcolo vengono prevalentemente utilizzate per risolvere problemi computazionali di larga scala in ambito scientico e ingegneristico. Svilup- patesi originariamente in seno alla sica delle alte energie il loro impiego è già da oggi esteso alla biologia, all'astronomia e in maniera minore anche ad altri settori.
Negli ultimi anni c'è stata una notevole crescita della ricerca e delle ap- plicazioni sviluppate in ambito Grid. Queste comprendono divesi settori; ci sono grandi progetti di computing nell'ambito della ricerca accademica (Glo- bus [3]), oppure provenienti dall'industria (Gridware from Sun [4]), progetti
5
6
di infrastrutture sponsorizzati a livello governativo (EuroGrid [5]) e Grid che riguardano specici settori, come quello della sica nucleare (INFN Grid [6]).
Allo stesso tempo è notevolemente cresciuto il numero di sistemi di Grid computing volontari, in cui gli utenti collegati attraverso Internet, principal- mente utilizzando personal computer per uso domestico, mettono a dispo- sizione la loro potenza di calcolo quando non è utilizzata, ovvero nei mo- menti dormienti. Seguendo il successo del progetto SETI@home [7], si sono sviluppati altri sistemi sempre di stampo altruistico o lantropico, quindi i vari partecipanti non ricevono alcun compenso (Folding@home [8], Compute- against-Cancer [9], FightAIDS@home [10], ecc.), e allo stesso modo sono nati progetti commerciali, in cui i partecipanti ricevono un compenso dall'azienda che usa la loro potenza di colcolo (Entropia Universe [11], Parbon [12], ecc.).
2.2 Organizzazioni Virtuali
Nella Griglia la condivisione di risorse non si limita allo scambio di le, ma permette l'accesso diretto a computer, software, dati ed altre risorse, in modo da poter sviluppare processi di collaborazione tra dierenti soggetti e tipi di attività. Questo richiede un alto livello di controllo, infatti vengono denite precise regole attraverso le quali deve svolgersi la condivisione, in modo da denire in maniera chiara cosa viene condiviso e chi ha i permessi per condividere.
Un insieme di individui, organizzazioni o istituzioni che condividono que- ste regole è denito Organizzazione Virtuale (Virtual Organization, VO [13]).
Da questa denizione si comprende come più Organizzazioni Virtuali possa- no variare completamente tra di loro, le dierenze possono comprendere i più svariati aspetti; lo scopo, la dimensione, la durata, il tipo di struttura. Allo stesso tempo una singola Organizzazione Virtuale è un'entità estremamente dinamica, in quanto non solo la natura ma anche il numero dei partecipanti alla VO può cambiare, la dinamicità delle relazioni di scambio che si vengono a creare richiede dei meccanismi per scoprire quali relazioni esistono in un particolare momento ed il loro tipo, infatti quando un nuovo utente entra in una Organizzazione Virtuale dovrebbe poter conoscere a quali risorse ha diritto di accedere e le regole a cui sottostare per eseguire l'accesso. Inol- tre una stessa risorsa presente nella VO può essere usata in diversi modi in base allo scopo della condivisione e alle regole che la controllano, ad esem- pio un computer può essere usato per eseguire solamente uno specico pezzo di software, oppure potrebbe essere utilizzato per eseguire dei generici cicli computazionali.
7
2.3 Architettura della Griglia
L'architettura Grid è organizzata in livelli. I componenti all'interno di ogni livello condividono alcune caratteristiche comuni, ma possono sfruttare le funzionalità ed i comportamenti forniti da ogni livello sottostante.
I livelli sono:
• Application
• Collective
• Resource
• Connectivity
• Fabric
Il punto centrale dell'architettura sono i protocolli del livello Resource e Connectivity che facilitano la condivisione delle risorse. Questi protocolli sono disegnati in maniera tale da poter essere implementati basandosi su dierenti tipi di risorse che vengono denite a livello Fabric. Al tempo stesso i protocolli del livello Resource e Connectivity vengono utilizzati per sviluppare una vasta gamma di servizi e applicazioni a livello Collective, chiamato in questo modo perchè provvede a coordinare l'uso di molte risorse.
Figura 2.1: Architettura Grid
8
Il livello Fabric fornisce l'accesso condiviso alle risorse di calcolo, alle memorie, ai cataloghi, alle risorse di rete ed ai sensori.
Il livello Connectivity denisce il nucleo del protocollo di autenticazione e comunicazione richiesto per le transazioni speciche di Grid sulla rete. I protocolli di comunicazione permettono lo scambio di dati tra risorse a livello Fabric.
Il livello Resource fornisce un set di protocolli, come ad esempio il GridFTP, una versione estesa di FTP che prevede l'uso di protocolli di sicurezza del livello Connectivity, l'accesso parziale ai le e la gestione del parallelismo dei trasferimenti ad alta velocità.
Il livello Collective fornisce protocolli e servizi che gestiscono le interazioni fra collezioni di risorse, come i servizi di Data Replication che attraverso la duplicazione dei dati, consentono di massimizzare le performance di accesso, diminuendo il tempo di risposta ed il costo, e aumentando l'adabilità.
Il livello Application comprende le applicazioni dell'utente che opera al- l'interno dell'Organizzazione Virtuale.