4
per la risoluzione in larga scala di problemi ad alta intensità di risorse
nella scienza, nella tecnica e nel commercio.
Il presente lavoro si articola in tre capitoli:
nel primo si introducono, in maniera dettagliata e meticolosa, le
principali caratteristiche del Grid Computing; nel secondo si studiano
alcuni degli importanti avanzamenti tecnologici del Grid Computing,
presentando una tassonomia dei sistemi di gestione delle risorse Grid,
seguita da un’indagine su alcuni sistemi di esempio rappresentativi;
nel terzo capitolo si identificano alcune tattiche per la gestione delle
risorse nel Grid Computing e si propone l’economia computazionale
come una metafora, per un’efficace gestione delle risorse e
pianificazione della applicazioni.
5
Capitolo 1 Il Grid Computing
1.1 Premessa
Nel campo delle architetture di calcolo parallelo, il Grid Computing
rappresenta oggi, senza alcun dubbio, la frontiera delle attività di
ricerca. Tale fatto è testimoniato sia dal numero di progetti di ricerca
dedicati a tale parola chiave, sia dal numero di grandi ditte di sistemi
di calcolo, software e informatica in generale, che si sono dotate di
una loro “soluzione Grid” sia dalle iniziative nazionali o
sovranazionali concesse alla parola Grid. Tuttavia questo termine,
oggi così attuale, è, se si considerano i progetti di ricerca e
l’evoluzione delle tecnologie informatiche nel loro complesso, solo la
punta di un iceberg.
Il termine “Grid”, infatti, rappresenta la formulazione particolarmente
fortunata di un’idea, quella della condivisione delle risorse di calcolo
sviluppatasi faticosamente negli ultimi tre decenni a seguito della
rapida evoluzione nelle tecnologie informatiche. Negli ultimi dieci
anni, poi, a partire dai primi esperimenti di macchine parallele virtuali
realizzate su reti locali fino a giungere a concezioni avveniristiche
quali la potenza di calcolo su richiesta o l’integrazione dinamica di
componenti simulativi indipendentemente, un filo conduttore può
essere individuato nella necessità di superare il problema
dell’eterogeneità sia a livello hardware che a livello software al fine di
fornire un’immagine integrata del sistema.
6
1.2 Tassonomia del fenomeno Grid
Secondo la definizione del progetto Globus, uno dei primi, più
importanti e, dal punto di vista dei finanziamenti ottenuti, più fortunati
progetti relativi al Grid Computing, «Le Grid sono ambienti
persistenti che rendono possibile realizzare applicazioni software che
integrino risorse di strumentazione, di visualizzazione, di calcolo e di
informazione che provengono da domini amministrativi diversi e sono
geograficamente distribuite». La definizione di Grid si basa, quindi,
sul concetto di condivisione delle risorse di diverse tipologie e si
presta, quindi, a categorizzare diverse tipologie di Grid:
1. Grid computazionali
2. Grid di dati
3. Grid di applicazioni e servizi
4. Grid di strumentazione
5. Grid di sensori
1.2.1 Grid computazionali
Una Grid computazionale è l’aggregazione di risorse di calcolo
provenienti da domini di sicurezza e gestione differenti.
Tale aggregazione è finalizzata a fornire ad un insieme di utenti
potenza di calcolo on-demand in modo disaccoppiato dalla
provenienza, cioè dai nodi che la stanno fisicamente fornendo. Si
consideri, ad esempio, il caso di una società multinazionale con sedi
sparse in tutto il mondo.
7
Ognuna di queste sedi possiede, oggi, un parco di architetture di
calcolo dimensionato o secondo un worst-case, dimensionato cioè per
soddisfare le necessità medie ma i picchi di richiesta, opppure
dimensionato per soddisfare le necessità medie e, quindi, non in grado
di gestire le situazioni di picco.
Una struttura Grid in grado di sopperire alle richieste di picco con
potenza computazionale proveniente dalle altre sedi della società
permetterebbe di dimensionare in modo più consono alle reali
necessità quotidiane il parco macchine realizzando così un notevole
risparmio. Allo stesso tempo, lo stesso meccanismo di raccolta della
potenza di calcolo sull’intero insieme delle risorse di calcolo della
società permette di realizzare un supercalcolatore disponibile
dinamicamente nel momento del bisogno. Le Grid computazionali,
rappresentando una linea evolutiva delle architetture di calcolo, hanno
una storia particolarmente ricca e variegata.
1.2.2 Grid di dati
Le Grid di dati possono essere considerate una delle forme evolutive
del web. Infatti, come il web, nascono per contenere grandi moli di
dati distribuite in domini differenti per gestione e posizione
geografica. A differenza del web, dove, pur data la ricchezza delle
informazioni presenti, mancano sia meccanismi espliciti di
standardizzazione dei significati associati a queste informazioni, sia
strumenti di elaborazione concorrente delle informazioni ottenute, le
Grid di dati coniugano la ricchezza delle sorgenti con gli strumenti
8
adatti a far sì che le informazioni presenti possano essere facilmente
correlate e vengano, quindi, a dotarsi di un alto valore aggiunto
rispetto al mero contenuto. Si consideri, a titolo di esempio, il caso
delle basi di dati contenenti i casi clinici dei singoli ospedali nel
mondo. Ognuna di queste basi di dati possiede, già presa
singolarmente, un fortissimo valore in quanto permette di analizzare
quali siano state nel passato le decisioni dei clinici. Tale valore però,
aumenta in modo non lineare se, aggregando le basi di dati in una
Grid di dati, si rende possibile analizzare, confrontare e correlare le
decisioni prese da clinici di scuole diverse in presenza di patologie
uguali o, quantomeno, comparabili.
1.2.3 Grid di applicazioni
Le Grid di applicazioni (e/o servizi) rappresentano una delle visioni
più futuribili nel campo del Grid Computing. Esse, infatti, non si
limitano ad essere una versione globalizzata all’intera internet del
concetto di Application Service Provider (ASP) cioè della possibilità
di affittare un certo tempo di esecuzione di una specifica applicazione
su di un server remoto, ma contemplano anche la aggregazione di
componenti applicativi sviluppati indipendentemente al fine di
realizzare nuove e originali applicazioni. Si consideri, a titolo di
esempio, il seguente caso. La costruzione di una nave è un processo
che ormai non coinvolge più il solo settore cantieristico in senso
stretto, ma, al contrario, richiede l’intervento di un largo insieme di
fornitori dedicati ai singoli sottosistemi.
9
Lo sviluppo di tali sottosistemi, per esempio la parte motoristica, la
parte di stabilizzazione o la parte dedicata alla sensoristica di
navigazione, viene affidato esattamente all’ente cantieristico
nominalmente responsabile della costruzione navale.
In uno scenario tradizionale, ognuno di questi fornitori ha una visione
limitata al sottosistema di cui è incaricato e si viene così a perdere la
visione olistica del prodotto finale fino al momento in cui, ottenuti
tutti i singoli sottosistemi dai diversi fornitori, l’ente cantieristico sarà
in grado di assemblare il prodotto finito. Questo non permette di
valutare all’interno del loop di progettazione gli effetti dovuti alle
interazioni tra i diversi sottosistemi, e rischia, quindi, di portare a
scoprire indesiderati effetti collaterali solo in fase di collaudo
dell’intero sistema.
Una soluzione a questo impasse è ottenibile tramite l’integrazione di
una Grid di applicazioni di elementi simulativi relativi ai diversi
sottosistemi. Tuttavia, elementi simulativi sviluppati secondo lo
standard internazionale attuale, cioè HLA-High Level Architecture,
non supportano l’assemblaggio dinamico a runtime di un sistema
completo, hanno un supporto limitato per l’esecuzione distribuita e
non permettono di schermare completamente agli altri utenti i dettagli
interni al componente.
Al contrario, una Grid di applicazioni deve permettere a ciascun
fornitore di:
• Mantenere il pieno controllo del componente simulativo
relativo al suo prodotto;
10
• Esporre solo un’interfaccia opaca;
• Assemblare l’intero sistema nave in una simulazione completa.
In una situazione di questo genere, ovviamente, una Grid di
applicazioni sussume al suo interno sia una Grid computazionale che
una Grid di dati.
Infatti, le risorse di calcolo utilizzate per eseguire i diversi componenti
applicativi sono aggregate dinamicamente a partire da domini di
gestione diversi. Contemporaneamente, i dati su cui si trova a operare
l’applicazione complessivamente costruita provengono da sorgenti
differenti e sono correlate tramite l’esecuzione coordinata delle
componenti applicative.
1.2.4 Grid di strumentazione
Consiste nella generalizzazione del concetto di accesso remoto ad
apparati di costo elevato o per rendere fruibile in forma remota un
setup sperimentale di elevato valore didattico.
In una Grid di strumentazione, apparati gestiti da enti diversi possono
essere integrati per aggregare esperimenti complessi non possibili in
nessuno dei singoli siti coinvolti nella Grid o per condividere
strumentazione didattica in mondo da rendere disponibile a corsi di
studio afferenti ad atenei diversi una struttura condivisa per la
realizzazione di esperimenti di comprovato valore didattico.
11
1.2.5 Grid di sensori
Il concetto di Grid di sensori proviene, principalmente, dal mondo
militare.
In ambito militare, tale concetto sta alla base della moderna teoria del
combattimento come attività incentrata sull’interconnessione delle
componenti dell’esercito belligerante. Recentemente, tuttavia, l’idea
di una Grid di sensori destinata a fornire una visione dettagliata e a
prova di guasto della situazione del campo è penetrata anche in ambiti
non militari quali quelli dell’agronomia e della salvaguardia del
territorio.
Si consideri, a titolo di esempio, il caso di un insieme di sensori
all’infrarosso sparsi per una foresta con lo scopo di segnalare
tempestivamente lo svilupparsi di focolai d’incendio. L’integrazione
delle informazioni provenienti da un grande numero di sensori
permette di effettuare una migliore separazione del calore ambientale
dal calore proveniente da un focolaio d’incendio e, quindi, garantisce
una consistente diminuzione della sensibilità del sistema ai falsi
positivi.
Le Grid di sensori, sono il ramo del Grid Computing che
maggiormente si avvicina al concetto di Ubiquitous Computing,
infatti, tutte le attività di ricerca dedicate a questa tipologia di Grid
pongono una fortissima attenzione alle problematiche legate alle reti
wireless, all’instradamento autonomo e alle reti senza infrastruttura
statica, cioè le cosiddette reti ad hoc.
12
1.3 Storia
Per valutare il livello di tumultuosità evolutiva delle tecnologie
dell’informazione, si considerino, per esempio, questi due parametri:
• Il numero di transistori e la frequenza di clock del singolo
processore, a rappresentare la sua capacità elaborativa;
• Il numero di calcolatori connessi a internet a rappresentare la
capacità di cooperare.
Questo aumento ha guidato la meccanica dell’evoluzione dei sistemi
informatici in generale e dei meccanismi di condivisione delle risorse
di calcolo in particolare.
Se si considera il fenomeno della condivisione delle risorse di calcolo,
si possono identificare quattro “ere” caratterizzate da distinte
metodologie e architetture dedicate al supercalcolo.
La prima èra è caratterizzata dal concetto “un computer per molti
utenti”. In questa èra, il costo della singola risorsa di calcolo è tale da
essere accessibile solo a entità grandi, in grado di ammortizzare
l’investimento attraverso l’uso contemporaneo della risorsa da parte di
numerosi utenti. In questa èra esisteva un ampio insieme di
architetture dedicate al supercalcolo basate su soluzioni
completamente ad hoc sviluppate sia da ditte specializzate che dai
grandi venditori di hardware generico.