Il grid computing è una rete di computer che aiuta un’azienda a svolgere attività di grandi dimensioni, per elaborare big data, modellare dati meteo, analizzare set di grandi volumi di dati nell’e-commerce, suddividendo un grande problema in poche sub-attività di piccole dimensioni distribuite sui computer che fanno parte della rete.
Video: Il grid computing (in inglese)
Cos’è il grid computing
Il grid computing (grid significa “griglia”) è una rete distribuita, decentralizzata, eterogenea di computer che lavorano in parallelo, in modo da disseminare il carico di elaborazione e incrementare la potenza di calcolo, attraverso nodi indipendenti.
L’obiettivo consiste nell’elaborare enormi volumi di dati in meno tempo, con grande capacità di archiviazione e memoria.
Storia del grid computing
Gli anni ’80 furono il decennio del computing parallelo, quando a metà anni ’90 emerse la grid come opzione di calcolo distribuito, una metafora per rendere la potenza di calcolo facile come accedere a una rete elettrica.
Pioniere di queste infrastrutture di reti distribuite, nel ’95, fu Information-Wide Area Year (I-Way), ma il grid computing conquistò la ribalta nel ’97 con il progetto distributed.net e soprattutto nel ’99 con SETI@home, progetto volontario di calcolo distribuito, con il maggior numero di partecipanti (5,2 milioni, da Guinness dei primati), che cercava segnali di vita intelligente attraverso la “scansione del firmamento”, sfruttando i processori in rete dei computer di tutti coloro che avevano messo a condivisione le proprie risorse di sistema. Grazie a oltre 152.832 computer disseminati in 234 Paesi, nel 2017 SETI@home raggiunse la capacità di calcolo di 994 TeraFlop.
La principale grid in Europa è l’EGEE (ex DataGrid, ex LCG, mentre gLite è il nome del suo middleware) del Cern di Ginevra.
Esistono grid metropolitane, nazionali e su scala internazionale. Per studiare le malattie neurodegenerative come l’Alzheimer, la Commissione europea ha finanziato NeuGRID, poi confluito nel progetto neuGRIDforyou (N4U).
Oggi le aziende usano le grid nell’ambito meteo, nella simulazione dei terremoti, nell’analisi di grandi volumi di dati nell’e-commerce, per risolvere problemi di natura scientifica, ingegneristica e industriale.
Come funziona il grid computing
Il grid computing connette risorse come computer, storage, workstation e server e offre una modalità per accedere ai dati, mediante la rete. Un software dedicato, chiamato middleware, gira sui client. Il server della griglia gestisce le attività e consente agli utenti di accedere ai dati.
La grid funziona:
- attraverso la condivisione di computer, software e hardware in rete;
- tramite nodi indipendenti, da abilitare o disattivare in ogni momento senza impattare sugli altri nodi;
- si avvale di tutta la potenza di calcolo delle Cpu dell’intera rete dei computer, anche se essi sono geograficamente distanti;
- mediante risorse di elaborazione inutilizzate che la rete mette a disposizione e sfrutta unendo le forze, per contribuire così a prendere in carico un impegno superiore ai singoli computer (non lavorano sulla stessa task specifica, ma operano su sub-attività in modo da raggiungere l’obiettivo collettivamente);
- software ad hoc che girano su ogni computer che partecipa al grid computing: il middleware opera da gestione risorse dell’intero sistema e coordina le varie task attraverso la grid;
- il software assegna le sub-attività a ogni computer in modo che lavorino in simultanea sulle loro rispettive sotto-attività;
- dopo aver terminato le subtask assegnate, gli output vengono raccolti e aggregati per completare le task;
- il software consente ad ogni computer di comunicare in rete con gli altri computer in modo da condividere le informazioni su quale porzione di subtask ogni computer sta girando e come consolidare e fornire gli output.
L’architettura del grid computing
Il grid computing ha un’architettura di rete distribuita e decentralizzata, in cui ogni nodo è indipendente senza necessità di server di pianificazione centralizzato. Infatti possono essere presenti più server.
I progetti di grid non hanno dipendenza temporale: utilizzano cioè i computer dell’architettura soltanto quando sono inattivi e gli operatori sono in grado di svolgere attività non legate all’architettura di grid computing in qualsiasi momento.
La grid richiede massima attenzione lato sicurezza, in quanto i controlli sui nodi membri possono essere vulnerabili.
Inoltre, i progetti di computing a griglia devono puntare sulla ridondanza, perché alcuni computer potrebbero subire disconnessioni o inciampare in errori nel corso dell’elaborazione.
Differenza con cluster computing e cloud computing
Il grid computing ha in comune con il cluster computing la capacità di risolvere problemi collegando i computer in rete, di usare le risorse nel migliore dei modi, aumentando l’efficienza e la velocità di trasmissione. Il grid computing ha in comune con il cloud computing la capacità di offrire assistenza e servizi tramite condivisione di risorse.
Ma le somiglianze finiscono qui. Il grid computing differisce sia dal cluster computing che dal cloud computing, per architettura, caratteristiche e funzionamento. Vediamo come, nei dettagli.
Differenza fra grid e cluster
Il grid computing si caratterizza per la rete di computer distribuiti in luoghi differenti, anche distanti geograficamente, a differenza del cluster computing (la computazione a grappolo) in cui la rete condivide la stessa vicinanza fisica e ogni computer è posizionato in prossimità dell’altro.
Inoltre i computer della grid si collegano di solito attraverso Internet o cavi di bus di rete a bassa velocità, mentre la rete di cluster computing sono connessi via cavi di bus di rete ad alta velocità.
Nel grid computing ogni nodo in una griglia si comporta in maniera indipendente, gestendo le proprie risorse in autonomia; l’architettura di rete è distribuita e decentralizzata.
La rete di cluster computing vanta invece un’architettura distribuita e centralizzata, in cui ogni nodo del cluster esegue lo stesso sistema operativo e i server fisici di ciascun nodo condividono unità di storage, in quanto il sistema di gestione risorse, centralizzato e dedicato, gestisce le risorse di tutti i nodi connessi.
Nella grid ogni nodo è indipendente, mentre nel cluster computing il sistema complessivo opera come un’entità unica.
Il grid computing è in grado di utilizzare le risorse di elaborazione non sfruttate per eseguire altre attività; invece i computer dell’elaborazione cluster sono destinati a svolgere solo attività singole.
Nella grid non è necessario un server di pianificazione centralizzato, mentre nel cluster un server centralizzato monitora la pianificazione delle attività.
La rete del grid computing è in generale eterogenea. Infatti sulle componenti hardware del computer (notebook, server, desktop, workstation, dispositivi mobili eccetera) girano vari sistemi operativi. La rete del cluster è omogenea, proprio dal punto di vista del sistema operativo utilizzato.
Differenza fra grid e cloud
Il grid computing sfrutta virtualmente risorse di elaborazione distribuite per ottenere un obiettivo comune. Invece il cloud computing fornisce a un’applicazione di livello superiore le risorse on demand attraverso un servizio web.
Il cloud è dedicato alla servitizzazione (SaaS, IaaS, PaaS) e l’erogazione di servizi in modalità “as a service” attraverso Internet. Invece la grid è focalizzata sulle applicazioni cui offre elaborazione e informazioni distribuiti.
L’architettura di rete del cloud è centralizzata, o client-server, invece quella del grid computing è decentralizzata.
Il grid computing ha risorse limitate a differenza del cloud.
Inoltre le griglie sono proprietà delle aziende, mentre nella nuvola i server sono dei provider.
Infine, l’infrastruttura di grid computing è in grado di gestire da sempre l’interoperabilità. Il cloud computing non lo era, prima dell’avvento del cloud ibrido, del multi-cloud, dell’edge computing.
Esempi di ambiti applicativi
L’elaborazione a griglia consente di svolgere automazione, modelli predittivi, astrofisica, simulazioni, progettazioni ingegneristiche, commercio, meteo eccetera.
In ambito meteo, una griglia può operare nel seguente modo:
- un team di ricerca analizza i modelli meteorologici nell’area del Nord Atlantico;
- un’altra squadra analizza la regione del Sud Atlantico;
- il grid computing combina entrambi i risultati per fornire un quadro completo dei modelli meteo dell’Oceano Atlantico.