Che cos'è il calcolo distribuito?

Per calcolo distribuito si intende il metodo che consente a più computer di lavorare insieme per risolvere un problema comune. Fa apparire una rete di computer come un potente unico elaboratore che fornisce risorse su larga scala per affrontare le sfide più complesse.

Ad esempio, il calcolo distribuito è in grado di codificare grandi volumi di dati, di risolvere equazioni fisiche e chimiche con molte variabili e di realizzare animazioni video tridimensionali di alta qualità. Sistemi distribuiti, programmazione distribuita e algoritmi distribuiti sono altri termini che si riferiscono al calcolo distribuito. 

Quali sono i vantaggi del calcolo distribuito?

I sistemi distribuiti offrono molti vantaggi rispetto al calcolo di un singolo sistema. Di seguito sono riportati alcuni vantaggi.

Scalabilità

I sistemi distribuiti possono crescere con il carico di lavoro e i requisiti. Se necessario, è possibile aggiungere nuovi nodi, vale a dire, altri dispositivi di calcolo, alla rete di calcolo distribuito.

Disponibilità

Il sistema di calcolo distribuito non viene arrestato se uno dei computer si blocca. La struttura del sistema mostra tolleranza ai guasti perché può continuare a funzionare anche se i singoli computer riportano un errore.

Consistenza

I computer di un sistema distribuito condividono informazioni e duplicano i dati tra loro, ma il sistema gestisce automaticamente la consistenza dei dati tra tutti i diversi computer. In questo modo si ottiene il vantaggio della tolleranza ai guasti senza compromettere la consistenza dei dati.

Trasparenza

I sistemi di calcolo distribuito forniscono una separazione logica tra l'utente e i dispositivi fisici. È possibile interagire con il sistema come se fosse un singolo computer, senza preoccuparsi dell'impostazione e della configurazione delle singole macchine. Hardware, middleware, software e sistemi operativi diversi possono lavorare insieme per far funzionare il sistema senza problemi.

Efficienza

I sistemi distribuiti offrono prestazioni più rapide con un uso ottimale delle risorse dell'hardware sottostante. Di conseguenza, è possibile gestire qualsiasi carico di lavoro senza preoccuparsi di guasti al sistema dovuti a picchi di volume o al sottoutilizzo di hardware costoso.

Quali sono i casi d'uso del calcolo distribuito?

Il calcolo distribuito è oggi ovunque. Le applicazioni mobili e Web sono esempi di calcolo distribuito, in quanto diverse macchine lavorano insieme nel backend affinché l'applicazione fornisca le informazioni corrette. Tuttavia, quando i sistemi distribuiti aumentano di dimensioni, possono risolvere sfide più complesse. Scopriamo alcuni modi in cui le applicazioni distribuite ad alte prestazioni vengono utilizzate in diversi settori.

Sanità e scienze biologiche

Nei settori sanità e scienze biologiche, il calcolo distribuito viene utilizzato per modellare e simulare i dati complessi delle scienze biologiche. L'analisi delle immagini, la ricerca medica sui farmaci e l'analisi della struttura genetica diventano più veloci con i sistemi distribuiti. Ecco alcuni esempi:

  • Accelerare la progettazione di farmaci in base alla struttura visualizzando i modelli molecolari in tre dimensioni.
  • Ridurre i tempi di elaborazione dei dati genomici per ottenere informazioni tempestive su cancro, fibrosi cistica e Alzheimer.
  • Sviluppare sistemi intelligenti che consentano ai medici di effettuare diagnosi per i pazienti elaborando un grande volume di immagini complesse come risonanze magnetiche, radiografie e TAC.

 

Ricerca ingegneristica

Gli ingegneri possono simulare concetti complessi di fisica e meccanica su sistemi distribuiti. Utilizzano questa ricerca per migliorare il design dei prodotti, creare strutture complesse e progettare veicoli più veloci. Ecco alcuni esempi:

  • La ricerca sulla fluidodinamica computazionale studia il comportamento dei liquidi e applica questi concetti alla progettazione di aerei e alle corse automobilistiche.
  • L'ingegneria assistita dal computer richiede strumenti di simulazione ad alta intensità di calcolo per testare nuovi impianti, componenti elettronici e beni di consumo. 

Servizi finanziari 

Le società di servizi finanziari utilizzano sistemi distribuiti per eseguire simulazioni economiche ad alta velocità che valutano i rischi del portafoglio, prevedono i movimenti del mercato e supportano il processo decisionale finanziario. Possono creare applicazioni Web che utilizzano la potenza dei sistemi distribuiti per le seguenti operazioni:

  • Distribuire premi personalizzati a basso costo
  • Utilizzare database distribuiti per supportare in modo sicuro un volume molto elevato di transazioni finanziarie.
  • Autenticare gli utenti e proteggere i clienti dalle frodi 

Energia e ambiente 

Le aziende energetiche devono analizzare grandi volumi di dati per migliorare le operazioni e passare a soluzioni sostenibili e rispettose del clima. Utilizzano sistemi distribuiti per analizzare flussi di dati ad alto volume provenienti da una vasta rete di sensori e altri dispositivi intelligenti. Ecco alcune attività che potrebbero svolgere:

  • Streaming e consolidamento dei dati sismici per la progettazione strutturale delle centrali elettriche
  • Monitoraggio in tempo reale dei pozzi petroliferi per una gestione proattiva del rischio

Quali sono i tipi di architettura di calcolo distribuito?

Nel calcolo distribuito, si progettano applicazioni che possono essere eseguite su più computer invece che su uno solo. Questo risultato si ottiene progettando il software in modo che i diversi computer svolgano funzioni diverse e comunichino per sviluppare la soluzione finale. Esistono quattro tipi principali di architettura distribuita.

Architettura client-server

Client-server è il metodo più comune di organizzazione del software in un sistema distribuito. Le funzioni si dividono in due categorie: client e server.

Client

I client hanno informazioni e capacità di elaborazione limitate. Piuttosto, fanno richieste ai server, che gestiscono la maggior parte dei dati e le altre risorse. È possibile effettuare richieste al client, che comunica con il server per conto dell'utente.

Server

I computer server sincronizzano e gestiscono l'accesso alle risorse. Rispondono alle richieste del client con dati o informazioni sullo stato. In genere, un server può gestire le richieste di più macchine.

Vantaggi e limitazioni

L'architettura client-server offre i vantaggi della sicurezza e di una semplice gestione continuativa. L'attenzione deve essere rivolta solo alla protezione dei computer server. Allo stesso modo, qualsiasi modifica ai sistemi di database richiede modifiche solo al server.

Il limite dell'architettura client-server risiede nel fatto che i server possono causare colli di bottiglia nella comunicazione, soprattutto quando diverse macchine effettuano richieste simultaneamente.

Architettura a tre livelli

Nei sistemi distribuiti a tre livelli, le macchine client rappresentano il primo livello di accesso. Le macchine server, invece, si dividono ulteriormente in due categorie:

Server di applicazioni

I server di applicazioni fungono da livello intermedio per la comunicazione. Contengono la logica delle applicazioni o le funzioni principali per cui si progetta il sistema distribuito.

Server di database

I server di database fungono da terzo livello per l'archiviazione e la gestione dei dati. Sono responsabili del recupero dei dati e della loro coerenza.

Dividendo le responsabilità dei server, i sistemi distribuiti a tre livelli riducono i colli di bottiglia della comunicazione e migliorano le prestazioni del calcolo distribuito.

Architettura a N livelli

I modelli a N livelli comprendono diversi sistemi client-server che comunicano tra loro per risolvere lo stesso problema. La maggior parte dei sistemi distribuiti moderni utilizza un'architettura a n livelli con diverse applicazioni aziendali che funzionano insieme come un unico sistema dietro le quinte.

Architettura peer-to-peer

I sistemi distribuiti peer-to-peer assegnano uguali responsabilità a tutti i computer collegati in rete. Non esiste una separazione tra computer client e server, e qualsiasi computer può svolgere tutte le attività. L'architettura peer-to-peer è diventata popolare per la condivisione di contenuti, lo streaming di file e le reti blockchain.

Come funziona il calcolo distribuito?

Il calcolo distribuito si basa sullo scambio dei messaggi tra computer all'interno dell'architettura dei sistemi distribuiti. Protocolli o regole di comunicazione creano una dipendenza tra i componenti del sistema distribuito. Questa interdipendenza si chiama accoppiamento ed esistono due tipi principali.

Accoppiamento debole

Nell'accoppiamento debole, i componenti sono collegati debolmente, per cui le modifiche a un componente non influiscono sull'altro.  Ad esempio, i computer client e i server possono essere accoppiati in modo debole per un periodo di tempo. I messaggi del client vengono aggiunti a una coda del server e il client può continuare a eseguire altre funzioni finché il server non risponde al suo messaggio.

Accoppiamento stretto

I sistemi distribuiti ad alte prestazioni utilizzano spesso un accoppiamento stretto. Le reti veloci dell'area locale in genere collegano diversi computer, creando un cluster. Nel cluster computing, ogni computer è impostato per eseguire la stessa attività. I sistemi di controllo centrali, chiamati middleware di clustering, controllano e programmano le attività e coordinano la comunicazione tra i diversi computer.

Che cos'è il calcolo parallelo?

Il calcolo parallelo è un tipo di calcolo in cui un computer o più computer di una rete eseguono molti calcoli o processi contemporaneamente. Sebbene i termini calcolo parallelo e calcolo distribuito siano spesso usati in modo intercambiabile, presentano alcune differenze.

Calcolo parallelo e calcolo distribuito a confronto

Il calcolo parallelo è una forma di calcolo distribuito strettamente accoppiato. Nell'elaborazione parallela, tutti i processori hanno accesso alla memoria condivisa per lo scambio di informazioni. Nell'elaborazione distribuita, invece, ogni processore ha una memoria privata (memoria distribuita). I processori utilizzano il passaggio di messaggi per lo scambio di informazioni.

Che cos'è il grid computing?

Nel grid computing, reti di computer geograficamente distribuite lavorano insieme per eseguire attività comuni. Una caratteristica delle griglie distribuite è che possono essere costituite da risorse di calcolo che appartengono a più individui oppure organizzazioni.

Grid computing e calcolo distribuito a confronto

Il grid computing è un calcolo distribuito altamente dimensionato che enfatizza le prestazioni e il coordinamento tra diverse reti. Internamente, ogni griglia funziona come un sistema di calcolo strettamente accoppiato. Tuttavia, esternamente, le griglie sono accoppiate in modo più debole. Ciascuna rete di griglie esegue funzioni individuali e comunica i risultati alle altre griglie.

Che cos'è il calcolo ad alte prestazioni di AWS?

Con AWS High-Performance Computing (HPC), puoi accelerare l'innovazione con una rete veloce e un'infrastruttura di calcolo distribuita virtualmente illimitata. Ad esempio, puoi utilizzare i seguenti servizi:

  • Amazon Elastic Cloud Compute (EC2), per supportare virtualmente qualsiasi carico di lavoro con capacità di calcolo sicura e ridimensionabile.
  • Batch AWS per dimensionare centinaia di migliaia di processi di calcolo sui servizi di calcolo AWS.
  • AWS ParallelCluster per creare rapidamente ambienti di calcolo HPC e cluster HPC.

Inizia a usare il calcolo distribuito in AWS oggi stesso creando un account gratuito.

Passaggi successivi del computing distribuito AWS

Scopri ulteriori risorse correlate al prodotto
Scopri di più sui servizi ibridi 
Registrati per creare un account gratuito

Ottieni accesso istantaneo al piano gratuito di AWS. 

Registrati 
Inizia a lavorare con la console

Inizia subito a sviluppare nella Console di gestione AWS.

Accedi