Grid computing: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
fix
 
(187 versioni intermedie di 98 utenti non mostrate)
Riga 1:
{{nota disambigua|il videogioco|Race Driver: GRID|GRID}}
[[image:Systems Diagram GRID Computing Jing Wu.jpg|thumb|right|Schema della possibile evoluzione del GRID]]
Il '''Grid computing''' (detto anche '''Grid''' o '''DataGrid''') è un nuovo modello computazionale che porterebbe [[Internet]] dall'essere una piattaforma di comunicazione ad una di lavoro. Questo modello rappresenta un nuovo passo avanti nella strada della progressiva condivisione delle risorse: si è cominciato col condividere i ''computer'' con l'introduzione delle [[rete|reti]], in seguito si è arrivati alla condivisione dei documenti (per esempio col [[WWW]]) ed infine si è arrivati a condividere le applicazioni mediante [[SOAP]], [[Web service]] ecc. L'ultimo passo è condividere tutto il resto cioè unire una serie di risorse eterogenee (''[[server]]'', ''[[storage]]'', applicazioni, ecc.) per fornire agli utenti un unico sistema computazionale virtuale sul quale utilizzare qualsiasi tipo di applicazione.
 
In [[informatica]] i '''grid computing''' o ''sistemi grid'' sono un'infrastruttura di [[calcolo distribuito]], utilizzati per l'[[elaborazione dati|elaborazione]] di grandi quantità di [[dati]], mediante l'uso di una vasta quantità di [[risorsa informatica|risorse]]. In particolare, tali sistemi permettono la condivisione coordinata di risorse all'interno di un'organizzazione virtuale.
Il grid computing nasce per soddisfare le esigenze di una ingente quantità di dati da elaborare con la messa a regime dell'[[LHC]], ma le sue caratteristiche ne consentono l'utilizzo da parte di diverse discipline scientifiche, non solo nell'ambito della [[fisica]] delle alte energie. La Grid funzionerà sfruttando la rete [[internet]] come collegamento fisico di varie unità di calcolo sparsi nei diversi centri di ricerca mondiali, permettendo un'elaborazione più efficiente e veloce dei dati sperimentali, che saranno accessibili a tutto il mondo scientifico.
 
== Storia ==
La Grid ha quindi l'obiettivo di mettere a disposizione di un utente di un gruppo, in qualsiasi località del mondo, di usare tutte le potenzialità di calcolo del sistema ([[calcolo distribuito]]). È una rete di [[personal computer]] tutti asserviti allo scopo di elaborare, gestire e condividere i dati di cui un utente, ovunque si trovi, ha bisogno.<br/>
{{NN|informatica|aprile 2010}}
Differisce quindi notevolmete dai sistemi quali [[SETI@home]] o [[Condor]] che sfruttano i pc solo quando i loro proprietari non sono intenti ad usarli.
 
La condivisione delle risorse di calcolo permette di suddividere la [[storia dell'informatica]] in 4 ere. La prima era quella caratterizzata dall'idea di un singolo computer per molti utenti. In questa era l'acquisto delle risorse di calcolo ha costi talmente ingenti che il problema è quello dell'uso contemporaneo di tali risorse da parte dei diversi utenti.
L'idea del Grid computing è scaturita dalla constatazione che in media l'utilizzo delle risorse informatiche di un'azienda è pari al 5% della reale potenzialità. Le risorse necessarie sarebbero messe a disposizione da varie entità in modo da creare una organizzazione virtuale con a disposizione un'infrastruttura migliore di quella che la singola entità potrebbe sostenere.
 
A partire dagli [[anni 1980|anni ottanta]] i costi dell'hardware subirono cali che permisero di avere un computer per ogni singolo utente. Nascono in questo periodo i primi [[personal computer]] e l'infrastruttura di calcolo si evolve verso il [[SIMD]]. Già dalla fine degli anni '80 si comincia a diffondere l'idea della condivisione dell'architettura hardware ciò anche grazie al già detto calo dei prezzi, portando alla nascita delle prime macchine parallele virtuali.
==Evoluzione del ''Grid computing''==
L'idea su cui si fonda la tecnologia Grid nasce all'inizio degli anni Novanta negli ambienti di ricerca, dove si comincia a pensare un modo per aggregare, attraverso l'ormai inaffidabile rete Internet, la potenza di calcolo erogata dai computer che si trovano in istituti sparsi in tutto il mondo.
 
Gli [[anni 1990|anni novanta]] sono quelli durante i quali si applica in toto la [[legge di Moore]] e si affermano le [[reti di calcolatori]] e [[Internet]] (concetti fondamentali per il ''grid'').
Un primo esperimento di archittettura di calcolo distribuito è il progetto [[SETI I]] della [[NASA]] per l'interpretazione di segnali di vita extratterestre.
Grid è concettualmente un'evoluzione della tecnologia cluster, dove due o più calcolatori vengono accoppiati tra di loro da connessioni ad alta velocità, per sommare le potenze di calcolo e rinforzare l'affidabilità, perchè in caso di un fuori servizio di un calcolatore gli altri subentrano automaticamente ai suoi compiti (collegamento in [[paral-lelo]]).
 
=== Evoluzione del ''grid computing'' ===
Grid non ha un "padre spirituale" chiaramente identificato, anche perchè è uno sviluppo tecnologico quasi scontato, in quanto l'idea di una rete globale di calcolatori capace di erogare servizi in modo indipendente dalla posizione dei server era già stata ampiamente dimostrata dalla realizzazione del Web. Se il principio teorico di funzionamento è semplice e quasi ovvio, la realizzazione pratica è il vero scoglio che ha richiesto dieci anni di tempo per fornire i primi risultati commerciali utilizzabili fuori dalle porte dei laboratori e delle università.
Il progetto [[SETI@home]], lanciato nel [[1999]] da Dan Werthimer, è un esempio molto noto di un progetto, seppur semplice, di grid computing. SETI@Home è stato seguito poi da tanti altri progetti simili nel campo della matematica e della microbiologia.
 
Attualmente, la più importante grid europea è quella del [[CERN]] di [[Ginevra]] che ora si chiama EGEE (gLite è il nome del middleware che produce; precedentemente LCG e prima ancora DataGrid), sviluppata - tra gli altri - da un team italo-ceco e prevalentemente presso l'[[INFN]], l'Istituto Nazionale di Fisica Nucleare.
Il [[CERN]] di [[Ginevra]] ha sviluppato i protocolli del GRID. Varie aziende fra le quali [[IBM]] e [[Intel]], sono impegnate nella diffusione della tecnologia che in futuro dovrebbe sostituire supercomputer e server dal costo di decne di migliaia di euro, con macchine in sè meno affidabili dal costo di 2000-3000 euro.
 
A differenza di quella utilizzata da SETI@Home, attualmente una grid viene concepita prevedendo un livello di [[middleware]] fra le risorse di calcolo e memoria (CE - computing element e SE - storage element) e gli utenti della grid stessa.<br />
La piattaforma prevede uno strato di [[middleware]] fra sistema operativo e aplicazione GRID. Il disaccoppiamento fra sistema operativo e GRID consente a GRID di non richiedere installazione e integrazione col sistema operativo e dunque, di funzionare su Windows, Linux e Mac.
Lo scopo principale del middleware è quello di effettuare il cosiddetto ''match-making'', ossia l'accoppiamento tra le risorse richieste e quelle disponibili in modo da garantire la distribuzione dei job (termine utilizzato nei sistemi [[batch]] per indicare un [[processo (informatica)|processo]] o una parte di esso) nelle condizioni migliori avendo sempre visibilità dello stato dell'intera grid.
All'utente-programmatore che utilizza il sistema operativo, il middleware supporta richieste di invio e ricezione dei dati, senza richiedere una conoscenza dei protocolli di rete.
 
Un altro importante fenomeno da evidenziare è la nascita accanto alle grandi grid nazionali ed internazionali, di molteplici implementazioni su scala locale o metropolitana di sistemi distribuiti che mantengono le caratteristiche di una grid. Tali sistemi vengono indicati con i termini Local Area Grid (LAG) e Metropolitan Area Grid (MAG) o, più semplicemente, Metropolitan Grid con chiaro riferimento alla classificazione introdotta nell'ambito del network ([[Local Area Network|LAN]], [[Metropolitan Area Network|MAN]], [[Wide Area Network|WAN]]). Come la coordinazione di grid nazionali prevede la futura costituzione di un world wide grid, le implementazioni di locali o di grid metropolitane si avvicinano al mondo delle [[Intranet]]. Esse infatti forniscono un tipo di infrastruttura che può essere usata più semplicemente di internet per l'introduzione del calcolo distribuito in ambito aziendale.
Gli sviluppi più importanti hanno riguardato la messa a punto di un protocollo di comunicazione efficiente per far dialogare tra loro i calcolatori e lo studio delle modalità più efficaci per scomporre i problemi e i calcoli complessi in una miriade di elaborazioni elementari adatte ad essere distribuite sui nodi del Grid.
 
L'organismo di riferimento per lo sviluppo di omogeneità e standard dei protocolli usati dalle grid è GGF (Global Grid Forum), che ha creato gli standard OGSA (Open Grid Services Architecture). Nel 2004 è stato emanato [[WSRF]] (Web Services Resource Framework), che è un insieme di specifiche per aiutare i programmatori a scrivere applicazioni capaci di accedere alle risorse grid.
In futuro è in progetto l'estensione dei problemi e degli ambiti scientifici in cui è utilizzabile la tecnologia GRID. L'architettura offre una potenza di calcolo in grado di memorizzare sui vari computer locali ed elaborare in pochi minuti moli di dati intermedi dell'ordine dei milioni di gigabyte, che occuperebbero moltissimi CD.
L'organismo di riferimento per lo sviluppo di omogeneità e standard dei protocolli usati da Grid è GGF (Global Grid Forum), ed ha creato gli standard OGSA (Open Grid Services Architeture). Nel 2004 è stato emanato WSRF (Web Services Resource Framework), che è un insieme di specifiche per aiutare i programmatori a scrivere applicazioni capaci di accedere alle risorse Grid.
 
Oggi il software più famoso ed utilizzato è [[BOINC]], un software di Grid Computing sviluppato dall'[[Università della California (Berkeley)]]. La sigla BOINC infatti sta per Berkeley Open Infrastructure for Network Computing. Questo software è open source.
Nell'industria del software, il più grande successo commerciale delle tecnologie Grid è rappresentato dall'ultimo database prodotto da Oracle, chiamato "10g". Proposto poco più di un anno fa, è ormai arrivato alla seconda versione ed è probabilmente destinato a far diventare la particolare versione della tecnologia Grid scelta dai suoi sviluppatori uno standard di mercato per le applicazioni destinate a banche e a grandi aziende.
 
== Descrizione ==
Infatti, banche e grandi aziende di telecomunicazioni utilizzano grandi moli di dati riguardanti addebiti o accrediti in conto corrente o della SIM card: necessitano di un sistema di calcolo rapido e non soggetto a guasti.
=== I sistemi grid ===
Il termine "griglia", in inglese ''grid'', è stato coniato intorno alla metà degli anni novanta. Il vero e specifico problema alla base del concetto di griglia è la condivisione coordinata di risorse all'interno di una dinamica e multi-istituzionale organizzazione virtuale (Virtual Organization, brevemente indicata con VO)<ref>{{cita libro|cognome=Foster|nome=Ian|coautori=C. Kesselman, S. Tuecke|titolo=The Anatomy of the Grid: Enabling Scalable Virtual Organizations|url=http://www.globus.org/research/papers/anatomy.pdf|formato=pdf|anno=2001|editore=Intl. J. Supercomputer Applications|urlmorto=sì|urlarchivio=https://web.archive.org/web/20050425094717/http://www.globus.org/research/papers/anatomy.pdf|dataarchivio=25 aprile 2005}}</ref>. La condivisione non è limitata solo allo scambio dei file, ma si estende all'accesso diretto a [[computer]], a [[software]], in generale a tutto l'[[hardware]] necessario alla risoluzione di un problema scientifico, ingegneristico o industriale. Gli individui e le istituzioni, che mettono a disposizione della griglia le loro risorse per la medesima finalità, fanno parte della stessa VO.
 
Caratteristica comune dei progetti grid è la necessità di disporre un ambiente di calcolo data-intensive, all'interno del quale le applicazioni hanno il bisogno di accedere a grandi quantità di dati geograficamente distribuiti in maniera veloce e affidabile ed, è proprio l'onere della grid, far operare tali applicazioni nel miglior modo possibile. È facile osservare che nessun computer attualmente in commercio sarebbe in grado, da solo, di elaborare simili moli di dati in tempi ragionevoli; tuttavia la condivisione di
risorse quali [[CPU]] e dischi opportunamente coordinati può dare l'impressione all'utente di accedere ad un supercomputer virtuale, con un'incredibile potenza computazionale e capacità di memorizzazione in grado di sopportare grandi carichi di lavoro<ref>{{cita libro|cognome=Baker|nome=M.|coautori=R. Buyya, D. Laforenza|titolo=The Grid: International Efforts in
Global Computing, International Conference on Advances in Infrastructure for Electronic Business, Science and Education on the Internet|url=http://www.csse.monash.edu.au/~rajkumar/papers/TheGrid.pdf|formato=pdf|anno=2000|mese=agosto|città=L'Aquila|urlmorto=sì}}</ref>.
Dall'idea di far apparire tutta l'architettura di un grid come un unico [[supercomputer]] virtuale, celando all'utilizzatore tutta la complessità interna e mostrandogli solo i benefici, nasce l'esigenza di progettare e realizzare uno [[Scheduler|schedulatore]] di risorse Resource Broker.<ref>{{cita libro|cognome=Krauter |nome=K.|coautori=R.Buyya, M.Maheswaran|titolo=A Taxonomy and Survey of Grid Resource Management System for Distributed Computing, Software: Practice and Experience (SPE) Journal |url=http://www.buyya.com/papers/gridtaxonomy.pdf |formato=pdf |anno=2001 |città=New York}}</ref>
 
Esso è uno dei componenti critici del sistema di gestione delle risorse, ha il compito di assegnare le risorse ai job (gridlet), in modo da soddisfare le esigenze delle applicazioni e del sistema. Le risorse di cui esso deve tenere traccia e gestire includono sistemi di calcolo e sistemi di immagazzinamento dati (mediante lo Storage Broker, rete di interconnessione e,
tramite il [[rete di calcolatori|Network]] Monitor)<ref>{{cita libro|cognome=Vazhkudai |nome=S.|coautori=S. Tuecke, and I. Foster |titolo= Replica Selection in the Globus Data Grid, Proceedings of the First IEEE/ACM International Conference on Cluster Computing and the Grid (CCGRID 2001), pp. 106-113 |anno=2001 |mese=maggio |editore= IEEE Computer Society Press}}</ref>.
Lo scheduling è un campo tradizionale dell'informatica, ma nonostante siano state studiate molte tecniche per numerose tipologie di sistemi (da uniprocessore a multiprocessore ai sistemi distribuiti), le caratteristiche tipiche delle griglie di dati rendono molti di questi approcci inadeguati. Infatti, mentre nei sistemi tradizionali le risorse e i job sono sotto il diretto controllo dello schedulatore, le risorse delle griglie sono geograficamente distribuite. Queste ultime sono di natura eterogenea e, appartengono a diversi individui o organizzazioni, ciascuna con le proprie politiche di scheduling, modelli di costo di accesso differenti, carichi di lavoro e disponibilità di risorse che varia dinamicamente nel tempo. La mancanza di un controllo centralizzato, insieme alla presenza di utenti che generano job (gridlet), molto diversi l'uno dall'altro, rendono la schedulazione più complicata rispetto a quella dei sistemi di calcolo tradizionali.
 
=== Classificazioni del ''grid computing'' ===
Il grid computing si differenzia dal [[cloud computing]] o dal peer-to-peer computing principalmente per tre fattori:<ref>{{Cita web|url=https://www.ionos.it/digitalguide/server/know-how/grid-computing/|titolo=Che cos’è il grid computing?|accesso=28 gennaio 2022}}</ref>
 
* Coordinamento decentrale, locale o globale di risorse quali cluster di computer, analisi di dati, database, ecc.
* Interfacce standardizzate e aperte (nodi) e [[middleware]] che si occupano di distribuire le operazioni e connettono le unità di calcolo alla "main grid".
* Un servizio che distribuisce i flussi di dati in maniera ottimale e garantisce la scalabilità anche nel caso di operazioni di calcolo complesse.
 
Inoltre, vi sono diversi tipi di grid computing:
* Computing grid (griglia di calcolo): si tratta della forma classica. Gli utenti usano la capacità di calcolo di un supercomputer virtuale, fornito dal provider, per distribuire e scalare i processi di calcolo complessi.
* Data grid (griglia di dati): qui vengono sfruttate le capacità di calcolo dei computer presenti in un cluster per valutare, trasmettere, condividere e analizzare grandi quantità di dati.
* Knowledge grid: si occupa di scansionare, collegare, raccogliere, valutare e strutturare record di dati e database.
* Ressource grid: un sistema che stabilisce le gerarchie tra tutti gli attori del grid computing.
* Service grid: questo tipo di grid computing combina le prestazioni di calcolo del computer a quelle del servizio in uso.
 
=== Applicazioni del ''grid computing'' ===
Un esempio di applicazione del paradigma di grid computing è [[neuGRID]], un progetto del 7° Programma Quadro che prevede lo sviluppo di un'infrastruttura per lo studio delle malattie neurodegenerative.
 
=== GridSim ===
[[File:Architettura GridSim.JPG|thumb|Architettura ''GridSim'']]
 
È stata elaborata un'interfaccia grafica che permette all'utente di inserire le caratteristiche del sistema grid, di cui si analizza il comportamento, presentandone di
volta in volta la ricostruzione grafica. Al termine della prima fase, ossia l'inserimento delle caratteristiche, si avvia la seconda fase, relativa alla simulazione. Durante la simulazione i dati vengono elaborati e viene presentato all'utente il report con tutte le informazioni e le risposte del sistema. Per la simulazione viene utilizzato il simulatore GridSim mentre
per la rappresentazione grafica del sistema viene utilizzato JUNG. JUNG (Java Universal Network/Graph Framework) è una libreria di modellazione e visualizzazione open source dei grafi, scritta in Java.
 
== Note ==
<references/>
 
== Bibliografia ==
* {{cita libro|cognome=Gelsinger |nome=Patrick P.|coautori=P.A. Gargini, G.H. Parker, A.Y.C. Yu|titolo=Microprocessors circa 2000 |anno=1989|lingua=inglese}}
* {{cita libro|cognome=Kogge|nome=Peter M.|titolo= The architecture of Symbolic Computers|url=https://archive.org/details/architectureofsy0000kogg|editore= McGraw-Hill |anno=1991|lingua=inglese|isbn=0-07-035596-7}}
* {{cita libro|cognome=Foster |nome=Ian|coautori=Carl Kesselman|titolo=The Grid 2: Blueprint for a New Computing |editore=Morgan Kaufmann|anno=2003 |lingua=inglese|url=http://books.google.it/books?id=8-0BofIhoU0C|isbn=1-55860-933-4}}
* {{cita libro|autore=[[Andrew Stuart Tanenbaum]]|titolo=Architettura dei calcolatori. Un approccio strutturale|editore=Pearson Education|città=Milano|anno=2006|url=http://books.google.it/books?id=hK8lJ4BPOYcC|pp=626-628|capitolo=Grid computing|isbn=978-88-7192-271-3|cid=adc}}
 
== Voci correlate ==
* [[SunSimulatore GridEngineGridSim]]
* [[Sun Grid Engine]]
* [[Xgrid]]
* [[Cloud computing]]
 
== Altri progetti ==
==Collegamenti esterni==
{{interprogetto}}
*[http://www.grid.org/home.htm Grid, il sito]
*[http://www.gridforum.org/ Grid forum]
*[http://grid.infn.it/ INFN-Grid]
 
== Collegamenti esterni ==
[[Categoria:Calcolo distribuito]]
* {{Collegamenti esterni}}
* {{cita web|http://www.gridforum.org/|Grid forum|lingua=en}}
* {{cita web|1=http://grid.infn.it/|2=INFN-Grid|lingua=en|accesso=21 dicembre 2004|urlarchivio=https://web.archive.org/web/20071018025355/http://grid.infn.it/|dataarchivio=18 ottobre 2007|urlmorto=sì}}
* {{cita web|http://people.na.infn.it/~spardi|The Metropolitan Area Grid}}
* [http://www.grid.unina.it/ Gruppo di Ricerca sull'Informatica Distribuita] {{Webarchive|url=https://web.archive.org/web/20060618111512/http://www.grid.unina.it/ |date=18 giugno 2006 }} dell'[[Università degli Studi di Napoli "Federico II"]]
* {{cita web|1=http://www.gridcafe.org|2=Grid Cafe|lingua=en|accesso=8 settembre 2018|urlarchivio=https://web.archive.org/web/20081205082353/http://www.gridcafe.org/|dataarchivio=5 dicembre 2008|urlmorto=sì}}
* {{cita web|1=http://eu-datagrid.web.cern.ch/eu-datagrid/|2=Il progetto EU DataGrid|lingua=en|accesso=8 settembre 2006|urlarchivio=https://web.archive.org/web/20160831054519/http://eu-datagrid.web.cern.ch/eu-datagrid/|dataarchivio=31 agosto 2016|urlmorto=sì}}
* {{cita web|1=http://lcg.web.cern.ch/LCG/|2=La LHC Computing Grid|lingua=en|accesso=8 settembre 2006|urlarchivio=https://web.archive.org/web/20060819221356/http://lcg.web.cern.ch/LCG/|dataarchivio=19 agosto 2006|urlmorto=sì}}
* {{cita web|1=http://public.eu-egee.org/|2=EGEE (enabling grid for the e-science)|lingua=en|accesso=8 settembre 2006|urlarchivio=https://web.archive.org/web/20060908091613/http://public.eu-egee.org/|dataarchivio=8 settembre 2006|urlmorto=sì}}
* {{cita web|1=http://www.hackgrid.org/|2=Progetto HackGrid!|lingua=en |accesso=13 dicembre 2021|urlarchivio= https://web.archive.org/web/20080404041904/http://www.autistici.org/hackgrid/doku.php|dataarchivio=4 aprile 2008|urlmorto=sì}}
* {{cita web|http://www.deisa.org/|DEISA|lingua=en}}
* {{cita web|http://www.cresco.enea.it/|ENEA CRESCO}}
* {{cita web|http://www.coregrid.net|CoreGRID Network of Excellence|lingua=en}}
* {{cita web | 1 = http://andreacannella.altervista.org/trigrid/ | 2 = Pagina web sul progetto Trigrid | accesso = 2 marzo 2009 | urlarchivio = https://web.archive.org/web/20100302082804/http://andreacannella.altervista.org/trigrid/ | dataarchivio = 2 marzo 2010 | urlmorto = sì }}
* {{cita web|https://programmingmore.blogspot.com/2010/10/grid-computing-in-java-versione-in.html|Articolo riguardo allo sviluppo di un sistema di grid computing in Java}}
 
{{Controllo di autorità}}
[[de:Grid-Computing]]
{{portale|informatica}}
[[en:Grid computing]]
 
[[es:Computación distribuida]]
[[Categoria:Calcolo distribuito]]
[[ja:グリッド・コンピューティング]]
[[nl:Grid computing]]
[[pl:Siatka komputerowa]]
[[zh:网格计算]]