Che cos’è il grid computing?
Il grid computing consiste in un cluster decentrato di computer collegati tra loro che formano un supercomputer virtuale. La capacità di calcolo distribuita flessibilmente consente di svolgere operazioni complesse con più risorse contemporaneamente e ottimizzare il carico sull’infrastruttura.
Grid computing: definizione
Il grid computing rientra nel distributed computing. Per distributed computing si intendono delle infrastrutture digitali costituite da computer autonomi ma interconnessi. Solitamente tale concatenazione è indipendente dal tipo di hardware, consentendo di collegare tra loro computer con diverse capacità e configurazioni. In questo modo le applicazioni e i processi distribuiti vengono eseguiti su vari dispositivi attraverso il collegamento delle singole unità di calcolo. Le unità di calcolo possono a loro volta comunicare tra di loro all’interno della rete e risolvere i problemi sia a livello locale che regionale.
La differenza tra distributed computing e grid computing è sottile. Il distributed computing può assumere diverse forme di elaborazione dati decentralizzata all’interno di una concatenazione di computer. Il termine grid computing, invece, definisce un supercomputer virtuale formato dalla connessione di computer liberamente combinati e impiegato per eseguire processi e operazioni di calcolo particolarmente intensive. I server e i computer interconnessi mettono a disposizione le proprie risorse e capacità di calcolo al fine di rendere le prestazioni necessarie più facilmente scalabili.
Come funziona il grid computing?
Con il grid computing vengono sfruttati i punti di forza dei cluster di computer in modalità decentrata e sovraregionale sotto forma di griglie. Mentre i cluster di computer sono composti solitamente da cluster di concatenazioni di computer limitate a livello locale, il grid computing si basa su capacità di calcolo di una concatenazione di computer sovraregionale. A essere collegati non sono soltanto i computer ma anche le banche dati, gli hardware e i software, così come le capacità di calcolo.
All’interno della griglia (grid), i provider collegano risorse di calcolo distribuite sia a livello globale che locale, attraverso interfacce (nodi) e middleware, suddivisi in organizzazioni virtuali, che a loro volta comunicano quali risorse devono occuparsi di una determinata operazione, o meglio, stabiliscono come distribuire nel migliore dei modi la capacità di calcolo in relazione a ogni singola applicazione.
Il grid computing trova impiego sia per fini commerciali che per l’analisi e l’elaborazione dei dati scientifica o economica. Se dei processi complessi richiedono maggiore capacità di calcolo di quella fornita da un computer o da un cluster locale di computer, il grid computing può aiutare a integrare, analizzare o rappresentare grandi quantità di dati. Nel grid computing non è richiesto alcun hardware speciale. Piuttosto, i middleware tra computer collegati fanno sì che le capacità di calcolo rimaste libere siano messe a disposizione all’interno dell’organizzazione virtuale.
Gli ambiti di impiego del grid computing
Il grid computing non è limitato a settori di impiego specifici poiché la concatenazione di cluster di computer può servire agli scopi più svariati. Gli ambiti di uso più noti dei supercomputer virtuali sono l’analisi scientifica ed economica dei big data, ovvero enormi quantità di dati e simulazioni che richiedono calcoli ad alta intensità. Queste riguardano le ricerche nell’ambito delle scienze naturali e nel campo medico, ma anche meteorologico, industriale o della fisica delle particelle. Un esempio potrebbe essere il grande esperimento del Large Hadron Collider eseguito dal CERN.
Le classificazioni del grid computing
Per definire e classificare il grid computing differenziandolo da altre tecnologie come il cluster computing o il peer-to-peer computing, ci sono tre fattori principali:
- Coordinamento decentrale, locale o globale di risorse quali i cluster di computer, l’analisi dei dati, la memoria di massa e le banche dati
- Interfacce standardizzate e aperte (nodi) e middleware (protocolli o insieme di protocolli) che connettono le unità di calcolo con la main grid e che distribuiscono i compiti/operazioni
- Disponibilità di una qualità di servizio non banale per distribuire i flussi di dati in maniera ottimale e garantire scalabilità costante e trasmissione dei dati affidabile anche nel caso di operazioni di calcolo ad alta intensità
Inoltre, il grid computing è suddivisibile in diverse classificazioni:
- Computing grid (griglia di calcolo): la forma più comune del grid computing, dove gli utenti di grid usano la capacità di calcolo combinata di un supercomputer virtuale messo a disposizione dal grid provider per distribuire e scalare i processi di calcolo ad alta intensità.
- Data grid (griglia di dati): i data grid mettono a disposizione le capacità di calcolo dei computer concatenati per consentire di valutare, rappresentare, trasmettere, condividere e analizzare grandi quantità di dati tramite i nodi di grid.
- Knowledge grid: questa struttura sfrutta le capacità di supercomputing del grid per scansionare, mettere in connessione, raccogliere, valutare e strutturare i grandi record di dati e le banche dati.
- Ressource grid: questo tipo di sistemi definiscono le gerarchie combinate nel grid dei fornitori e utenti di grid e provider di risorse. Un modello stabilisce quali provider di risorse possono mettere a disposizione tramite interfacce le relative capacità di archiviazione e di calcolo, i record di dati, software e hardware, applicazioni, sensori, misuratori e altri strumenti.
- Service grid: i provider di service grid mettono a disposizione degli utenti di grid le componenti e le capacità concatenate dei provider di risorse come servizio completo. Il grid computing combina le prestazioni di calcolo con l’orientamento al servizio.
Grid computing vs cloud computing: qual è la differenza?
Il grid computing non va confuso con il cloud computing. Con il grid computing vengono collegate più risorse tramite una combinazione decentrale dei computer in un supercomputer virtuale. I grid provider posseggono le infrastrutture delle applicazioni e dei computer collegati. Nel cloud computing, invece, i cloud provider mettono a disposizione la capacità di calcolo, gli spazi di archiviazione e i servizi a livello globale tramite cloud hosting, tuttavia le prestazioni di calcolo sono organizzate centralmente all’interno del cloud.
I vantaggi del cloud computing sono, ad esempio, le infrastrutture IT esternalizzate e scalabili, gli spazi di archiviazione su cloud e uno sforzo informatico ridotto. Le aziende e gli utenti privati possono usare i servizi cloud per diverse operazioni in modo centralizzato e a un prezzo economico, senza dover disporre di risorse proprie. Il grid computing, invece, offre il vantaggio di poter elaborare quantità enormi di dati ed eseguire processi complessi a un prezzo economico grazie alla capacità di grid combinate, senza avere un data center proprio.
Grid computing: vantaggi e svantaggi
Vantaggi
- Coordinamento e gestione di processi e operazioni multidispositivo
- Scalabilità economicamente vantaggiosa dei processi grazie alle prestazioni di calcolo e agli spazi di archiviazione combinati
- Elaborazione, analisi e rappresentazione simultanee/parallele di grandi quantità di dati grazie alle concatenazioni di computer
- Operazioni complesse eseguite in maniera più efficiente e veloce
- Carico affidabile e sfruttamento ottimale dell’infrastruttura IT grazie alle organizzazioni virtuali e alla distribuzione flessibile delle operazioni
- Minor rischio di malfunzionamenti, poiché le capacità sono distribuite in modo flessibile e modulare all’interno del grid
- Nessun grande investimento necessario per l’infrastruttura server
Svantaggi
- In alcune circostanze l’amministrazione risulta complessa e alcune componenti di sistema incompatibili
- Le prestazioni di calcolo non aumentano in maniera lineare con il numero dei computer collegati