Date post: | 01-May-2015 |
Category: |
Documents |
Upload: | panfilo-molinari |
View: | 213 times |
Download: | 0 times |
Le Griglie Computazionali
Ing. Tommaso Coviello
La griglia in breve…1/2
L’obiettivo di una griglia è creare l’illusione all’utente finale di interagire con un “semplice” computer virtuale “gestito in maniera autonoma”
Questo super-computer è ottenuto mediante la connessione di sistemi eterogenei che condividono alcune risorse.
La griglia in breve…2/2
Il concetto di Griglia nasce come evoluzione del Web, da cui eredita tutte le caratteristiche (indipendenza dalla piattaforma, facilità d’uso, scalabilità, trasparenza per l’utente).
• WEB: accesso uniforme alle informazioni
• GRID: accesso flessibile e ad alte prestazioni a tutte le risorse.
Analogia
Il termine “Grid” deriva dall’analogia con la rete elettrica (Electrical Power Grid).
Rete elettrica:
fornitura di energia senza interruzione
l’utente paga per l’uso della corrente, senza interessarsi della sua provenienza
Griglia:
forniture di risorse (potenza computazionale, capacità di storage, banda, ecc.) senza interruzione
l’utente paga per l’uso senza sapere dove è e chi gli fornisce la risorsa che utilizza
Le ragioni per cui nasce una griglia
Definizioni di griglia
Definizione 1“Una griglia computazionale è un’infrastruttura hardware e software che
fornisce un accesso sicuro, costante e diffuso a capacità computazionali di alto livello” (1998 Ian Foster, Carl Kesselman)
La risorsa computazionale è vista come una utility e pertanto deve possedere le seguenti caratteristiche:
Accesso trasparente all’utente Accesso sicuro Utilizzo efficiente delle risorse Gestione di risorse distribuite
Definizioni di griglia
Definizione 2“condivisione coordinata di risorse all’interno di una dinamica e multi-
istituzionale organizzazione virtuale” (2000 Ian Foster, Carl Kesselman, and Steve Tuecke)
Questa definizione focalizza l’attenzione sulla condivisione delle risorse e sulla collaborazione tra gruppi di individui all’interno o tra organizzazioni virtuali.
La condivisione non è limitata allo scambio dei file, ma si estende all’accesso diretto a computer, al software, in generale a tutto l’hardware necessario alla risoluzione di un problema scientifico, ingegneristico o industriale
Alcuni semplici utilizzi
Il più semplice utilizzo della griglia lo si ha facendo eseguire un’applicazione esistente su una macchina differente che normalmente non è impegnata allo svolgimento di attività complesse.
In questo scenario occorre che: L’applicazione deve poter essere eseguita in remoto
senza overhead La macchina remota deve essere compatibile con i
requisiti hardware e software richiesti dalla particolare applicazione
Esempio:Un job batch che esegue delle elaborazioni sui dei dati di
input e restituisce un certo output.
Cosa una griglia può fare
Sfruttare le risorse inutilizzate
Un framework per utilizzare le risorse di calcolo di molte organizzazioni che sono effettivamente impiegate per il 5% del tempo
La possibilità di aggregare una parte dello spazio disco inutilizzato al fine di formare uno storage virtuale
La possibilità di bilanciare l’utilizzo delle risorse di calcolo e di storage durante inaspettati picchi di attività. Se l’applicazione utilizzata è grid-enabled, essa può migrare verso risorse inutilizzate.
Cosa una griglia può fare
Utilizzare in parallelo le CPU
L’applicazione deve essere partizionata in diversi job.Maggiore è l’indipendenza di questi job maggiore è la
scalabilità dell’applicazione Limiti alla scalabilità: Numero di job di partizionamento limitato I job non sono completamente indipendenti:
Necessitano di accedere agli stessi file o database Necessitano di comunicare tra loro latenza nelle
comunicazioni
Cosa una griglia può fare
Rendere un’applicazione grid-enabled
Devono essere forniti degli strumenti che i designer delle applicazioni possono sfruttare per scrivere applicazioni grid-enabled
Non tutte le applicazioni possono essere trasformate per essere eseguite in parallelo e rese scalabili
Non esistono strumenti automatici capaci di rendere l’applicazione in grado di sfruttare il parallelismo offerto dalla griglia
Cosa una griglia può fare
Favorire la collaborazione tra Virtual Organization (VO)
Attraverso l’utilizzo di standard vengono rese interoperabili diverse risorse eterogenee offrendo all’utente finale l’impressione di interagire cin un sistema virtuale che mette a disposizione delle risorse virtuali.
Gli utenti a loro volta sono organizzate dinamicamente in VO ognuna con politiche differenti
Cosa una griglia può fare
Accesso a una grande quantità di risorse addizionali (non solo CPU/Storage)
Esempio Supponiamo di voler effettuare un’elaborazione su un set di dati localizzati su un’unica macchina di storage. E’ possibile aumentare la banda totale per la connessione se i job trasferiscono i dati da diverse macchine che hanno una connessione separata.
Accesso a software con licenze costose
Accesso ad apparecchiature specialiAd esempio microscopio a scansione
Cosa una griglia può fare
Bilanciare il carico sulle risorse
Contenimento di inaspettati picchi di richieste computazionali.
1° Modo: I job vengono schedulati su macchine poco utilizzate.
2° Modo: I job con bassa priorità possono essere temporaneamente sospesi o comunque cancellati per essere sottomessi successivamente
Rendere il sistema affidabile La distribuzione su larga scala geografica può essere
utile ad esempio in caso di blackout L’enorme quantità di risorse può essere sfruttata per
fare delle repliche
Cosa una griglia può fare
Strumenti per la gestione
Questi strumenti permettono di controllare l’accesso alle risorse e descriverne le politiche.Ad. Es. sarebbe possibile concedere l’accesso a una certa percentuale di risorse a una determinata VO piuttosto che a un’altra per questioni legate ad esempio alla priorità di un progetto rispetto a un altro.
Classificazione delle risorse
Le risorse computazionali
Le risorse computazionali possono avere caratteristiche differenti in termini di velocità, architettura,sistema operativo, memoria, spazio disco e connettività.
Modalità di utilizzo: Esecuzione di un’applicazione su una macchina
disponibile Esecuzione contemporanea di una stessa
applicazione che ha la possibilità di essere divisa in più job
Esecuzione su macchine diverse di un’applicazione che deve elaborare dei dati molte volte.
Classificazione delle risorseLe risorse di storage.
Queste risorse si riferiscono alla condivisione dei dispositivi di memorizzazione di massa.
La condivisione di queste risorse permette permette di avere uno storage virtuale con
Enormi capacità di immagazzinamento dei dati Miglioramenti della performance Aumento dell’affidabilità
L’utilizzo di file system distribuiti (AFS,NFS,DFS,GPFS) offre la possibilità di:
Non avere restrizioni in termini di spazio disco Di avere un singolo spazio di nomi per i file
Classificazione delle risorseAlcuni file system avanzati possono implementare:
Meccanismi per la replica automatica dei data set per migliorarne l’affidabilità e la performance
Il data striping che è la segmentazione di dati logicamente sequenziali (come ad esempio un file) che vengono scritti su dispositivi fisici diversi in modalità round-robin utile nella lettura o scrittura di grandi quantità di dati ad alta velocità.
Meccanismi di journaling che monitorano in maniera continua le transazioni e quindi permettono di ristabilire l’integrità del sistema anche dopo un certo numero di failure
Classificazione delle risorse
Software e licenze
Software con licenze molto costose possono essere installati su nodi di griglia dando a tutti gli utenti la possibilità di lanciare i job su tali nodi.
Alcune licenze permettono di installare il software su un numero illimitato di macchine limitando il numero delle installazioni che possono essere utilizzate contemporaneamente.
Apparecchiature speciali
I job e le applicazioni
Un job è un programma che viene eseguito su un particolare nodo di griglia
Un’applicazione di griglia è progettata in maniera tale da eseguire in parallelo un certo numero di job.
I job possono avere delle dipendenze in maniera tale da formare una gerarchia di job.
Tutti i risultati prodotti vengono alla fine ricomposti per dare il risultato finale dell’applicazione
Scheduling
Nei sistemi di griglia più semplici è l’utente responsabile di selezionare la risorsa su cui inviare un job
Nei sistemi di griglia più avanzati questo compito viene assegnato al “job scheduler” o “resource broker”Il resource broker tiene conto della disponibilità effettiva delle risorse di griglia.
Scavenging system
Sistemi scavenging: Quando una macchina diventa “idle” comunica il suo
stato a un nodo centrale Quest’ultimo assegna i job alla prima risorsa libera
che soddisfa i requisiti del job.Proprietà:
Sistema non intrusivo il job viene sospeso o cancellato nel caso la macchina risulti occupata nell’esecuzione di job locali.
Sistema con comportamento non prevedibile i tempi di esecuzione dei job possono variare nel tempo Soluzione: avere risorse dedicate (predizioni più accurate)
Reservation
La reservation delle risorse per un set di job è utile per
Per raggiungere dei risultati entro una certa deadline Per garantire una certa QoS
La tecnica dello scavenging permetterebbe di utilizzare le risorse con job a bassa priorità nel caso le risorse non fossero impegnate durante il periodo della reservation
Le applicazioni di griglia
Classificazione applicazioni
Distributed Supercomputing
Queste applicazioni usano la griglia per aggregare una sostanziale quantità di risorse per risolvere problemi che non possono essere risolti su un singolo sistema.
Problemi: Scalabilità dei protocolli e degli algoritmi su centinai di
migliaia di nodi Algoritmi tolleranti alla latenza delle comunicazioni Raggiungere perfomance adeguate su sistemi
eterogenei Necessità di co-schedulare i job
Classificazione applicazioni
High-Throughput Computing
La griglia viene usata per schedulare un’enorme numero di task indipendenti o debolmente accoppiati.
L’obiettivo principale è sfruttare le CPU disponibili.
Esempio:Condor è un sistema che riesce a gestire centinaia di
workstation sparse fra laboratori e università, per risolvere problemi di natura scientifica
Classificazione applicazioni
On-demand computing
Queste applicazioni sfruttano la griglia per raggiungere degli obiettivi a breve-termine
A differenza delle applicazioni di distributed supercomputing non badano alla performance assoluta, ma anche ai costi.
Le risorse di cui necessitano possono essere:RepositorySensori specalizzati etc.
Risorse di calcolo
Software
Problemi: natura estremamente varia delle risorse e dal numero potenzialmente alto di risorse e di utenti discovery delle risorse, scheduling, fault tolerance, meccanismi di pagamento, sicurezza.
Classificazione applicazioni
Data intensive computing
Queste applicazioni hanno lo scopo di sintetizzare nuove informazioni a partire da dati distribuiti geograficamente in diversi repository.
Questo processo di sintesi è Computational intensive Communication intensive
Esempio:In futuro gli esperimenti di fisica alle alte energie
produrranno terabyte di dati al giorno che verranno analizzati da migliaia di fisici in tutto il mondo
Classificazione applicazioni
Collaborative Computing
Queste applicazioni sono strutturate in termini di spazi virtuali condivisi che favoriscono la collaborazione e l’interazione tra individui.
EsempioIl sistema NICE permette ai bambini di partecipare nella
creazione e manutenzione di mondi virtuali realistici per scopi di intrattenimento ed educativi.
Problemi: real-time
Servizi e componenti di griglia
La progettazione di una griglia
La progettazione di un sistema di griglia è influenzata dal fattore
ScalaL’infrastruttura computazionale è frattale. Tuttavia a
seconda della scala cambiano i regimi fisici, economici e politici.
PerformanceRequisiti di performance stringenti amplificano gli effetti del fattore di scala soprattutto a causa dell’eterogeneità.
Esempio: L’acceso remoto ai file, nel caso di sistemi UNIX, può essere
implementato sfruttando il protocollo HTTP. Soluzione poco performante.
Una breve premessa
I processi e i thread
Un processo può essere pensato come un programma in esecuzione: lo stato della sua attività è rappresentato dal program counter, dai registri del processore ecc.
Un thread è l’unità di base dell’utilizzo della CPU. Esso comprende un ID, un program counter, un insieme di registri e uno stack.
Una breve premessaOgni processo può essere formato da uno o più flussi di controllo detti thread i quali condividono il codice, i dati e altre risorse del sistema operativo come i file aperti.
I servizi di base
I servizi di base che saranno probabilmente adottati nei sistemi di griglia saranno quelli sviluppati in passato per i sistemi di calcolo convenzionale.
Autenticazione: stabilisce l’identità dell’utente
Autorizzazione: stabilisce i diritti dell’utente per creare le entità chiamate processi. La capacità di un processo nell’acquisire delle risorse dipendono dai meccanismi di autorizzazione sottostanti i quali implementano precise politiche di allocazione delle risorse.
I servizi di base
Scheduling: stabilisce l’assegnazione delle risorse ai diversi processi concorrenti secondo alcune politiche.
Accounting: tiene traccia delle risorse allocate e utilizzate.
Meccanismi di pagamento: traducono l’utilizzo delle risorse nella valuta corrente
Meccanismi di protezione: assicurano che la computazione di un utente non interferisca con quella di un altro utente
End Systems
Questi componenti di sistema sono: Computer Sistemi di storage Sensori Altri dispositivi specializzati
Sono caratterizzati da: Una piccola scala Alto grado di omogeneità e integrazione
Questi sistemi sono i più semplici su cui implementare i servizi precedenti
End Systems: Stato dell’arte
Nei sistemi convenzionali i servizi sono forniti da un sistema operativo che ha un controllo assoluto su tutte le risorse del computer.
Gestisce l’autenticazione e fa da mediatore per le richieste dell’utente nell’acquisizione delle risorse, nella comunicazione tra processi, nell’accesso ai file ecc.
L’alto grado di integrazione tra hardware e sistema operativo permette di raggiungere performance elevate
End Systems: Direzioni future
L’attuale architettura di questi sistemi non prevede l’integrazione degli stessi in cluster, intranet e internet.
I sistemi operativi stanno evolvendo nel supportare operazioni in ambienti nei quali i servizi
sono distribuiti su più computer connessi in rete Nel supportare la mobilità del codice attraverso schemi
di autenticazione e sviluppo di ambienti di esecuzione sicuri per il codice scaricato.
Cluster
Sono un gruppo di computer connessi da una LAN ad alta velocità e progettati per essere utilizzati come una risorsa di calcolo integrata.
Proprietà di un cluster Omogeneo: i sistemi componenti differiscono nella
configurazione ma non nell’architettura Controllato da una singola entità amministrativa Scala fisica di sviluppo più elevata: richiede algoritmi
alternativi per funzioni di gestione e controllo delle risorse.
Integrazione ridotta: crollo delle performance per alcune funzioni (ad es. le comunicazioni)
Cluster: Stato dell’arte
In un end system multiprocessore, si raggiungono elevate performance mediante
l’utilizzo di librerie di comunicazione specializzate (MPI) Multithreading (utilizzo memoria condivisa): meccanismi
hardware assicurano uno spazio di indirizzi uniforme per i thread.
In un cluster: L’implementazione dello scambio di messaggi è semplice
attraverso l’utilizzo del TCP/IP (poco performante) La condivisione di memoria richiede l’implementazione di
meccanismi software per tradurre gli indirizzi locali in indirizzi globali (più complicato).
Cluster: direzioni future
Le architetture dei cluster stanno evolvendo in risposta a tre questioni:
Modifiche a livello hardware e i sistema operativo per supportare comunicazioni ad alta velocità
Implementazioni di nuovi servizi come il co-scheduling (tecnica capace di schedulare contemporaneamente su processori differenti i processi membri di una stessa unità computazionale).
Possibilità di utilizzare risorse non specializzate a discapito delle performance e dell’integrazione
Intranet
Una intranet comprende un elevato numero di risorse che sono soggette:
A un unico organo di controllo amministrativo A un elevato grado di coordinazione delle risorse
I principali fattori di complicazione sono: Eterogeneità: gli end system e le reti utilizzate sono
di tipologia differenti Gestione separate: i singoli sistemi possono essere
gestiti separatamente politiche conflittuali Mancanza di una conoscenza globale della struttura
e dello stato del sistema
Intranet: Stato dell’arte
I servizi implementati in una intranet si rivolgono soprattutto a questioni riguardanti:
La condivisione dei dati File system distribuiti Database Web services
L’accesso a servizi specializzati piuttosto che il supporto coordinato di risorse multiple.
Occorrono meccanismi e interfacce che possono essere resi uniformi grazie al controllo amministrativo centrale.
Autenticazione Conversione di formati Accounting
Intranet: Stato dell’arte
I programmi solitamente non allocano delle risorse o creano esplicitamente dei processi.
Essi si collegano a servizi predefiniti a causa della scarsa conoscenza tra le risorse.
L’interazione avviene attraverso meccanismi di Remote procedure call (RPC) Remote method invocation (RMI)
Necessità di servizi aggiuntivi: Meccanismi di discovery delle risorse Tecnologie sofisticate di autenticazione (kerberos).
Internet
I fattori principali che complicano lo scenario sono:
Mancanza di un controllo centralizzato: nessuna autorità centrale può forzare le politiche o la qualità delle risorse
Diffusione su scala geografica: calo significativo delle performance di rete.
All’aumentare della distanza Aumenta la latenza Diminuisce la banda disponibile a causa delle
comunicazioni concorrenti
Internet: stato dell’arte
L’assunzione che un utente o una risorsa può fare nei riguardi di un’altra risorsa è ridotta al minimo.
Occorrono tecniche basate sul discovery e la negoziazione.
La sicurezza diventa un problema primario in internet: Vengono introdotti approcci dinamici per
l’autenticazione e il controllo degli accessi: la delegazione.