Cos'è il calcolo distribuito?

Forme di tempeste

Autori

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Cos'è il calcolo distribuito?

Il calcolo distribuito utilizza numerose risorse informatiche in luoghi operativi diversi per un unico scopo di calcolo.

I sistemi di calcolo distribuito permettono di realizzare grandi cose. Pensaci la prossima volta che giochi a un gioco multiplayer online di massa (MMO). Per gestire efficacemente un MMO, è necessario che interi sistemi si uniscano e lavorino in stretta collaborazione per offrire un'esperienza online senza interruzioni, condivisa simultaneamente da migliaia di giocatori in un ambiente in tempo reale.

Il calcolo distribuito aiuta i fornitori a gestire questo tipo di sincronizzazione coordinata e la potenza di elaborazione del computer verso un obiettivo comune.

E questo è solo un esempio delle tante e ampie applicazioni dei servizi di calcolo distribuito attualmente in uso, tra cui la creazione di grafica 3D vivida per animazioni video, l'addestramento delle reti neurali che imitano la funzionalità del cervello umano e la risoluzione di equazioni estremamente complesse legate alla chimica e alla fisica.

In genere, il modello di calcolo distribuito si occupa dei compiti e dei workload più intensivi e delle sfide computazionali più impegnative, motivo per cui richiede l'uso di più componenti e della memoria condivisa.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Come funziona il calcolo distribuito?

Il calcolo distribuito riunisce più computer, server e reti per svolgere attività informatiche di dimensioni e scopi molto diversi. Nei piccoli sistemi informatici distribuiti con componenti vicini l'uno all'altro, questi componenti possono essere collegati tramite una rete locale (LAN).

Nei sistemi distribuiti più grandi, i cui componenti sono separati geograficamente, i componenti sono collegati tramite reti WAN (wide area network). I componenti di un sistema distribuito condividono le informazioni attraverso il tipo di rete utilizzato. L'esempio più noto di sistema distribuito è Internet. L'esempio più controverso di sistema distribuito negli ultimi tempi è forse la criptovaluta.

Componenti del calcolo distribuito

Da un punto di vista computazionale, in termini di numero di componenti tipicamente coinvolti, anche le forme più elementari di calcolo distribuito contengono solitamente tre componenti di base:

  • Controller di sistema primario
  • Storage dei dati di sistema
  • Database

Tuttavia, non esistono regole fisse che limitino cosa costituisca una circostanza di calcolo distribuito o quanti componenti software siano necessari per renderne possibile il funzionamento. Potrebbero esserci solo pochi componenti che operano all'interno di quella catena (o rete), oppure l'istanza potrebbe incorporarne molti di più.

Questo è uno dei grandi vantaggi dell'utilizzo di un sistema di calcolo distribuito, ovvero che il sistema può essere ampliato con l'aggiunta di altre macchine. L'altro vantaggio significativo è la maggiore ridondanza, quindi se un computer della rete si guasta per qualsiasi motivo, il funzionamento del sistema procede senza problemi, nonostante quel punto di errore.

Questo concetto di ridondanza aggiuntiva va di pari passo con l'enfasi sulla tolleranza ai guasti. La tolleranza ai guasti è un processo correttivo che consente a un sistema operativo di rispondere e correggere un errore nel software o nell'hardware mentre il sistema continua a funzionare. La tolleranza ai guasti è stata utilizzata come misura generale del proseguimento della redditività aziendale nonostante a un guasto serio.

I sistemi di calcolo distribuito non sono quindi vincolati da limiti sul numero di componenti, né è necessario che tali componenti siano fisicamente posizionati l'uno vicino all'altro e collegati da reti locali. Grazie alle funzionalità ampliate delle reti geografiche, i computer di un sistema informatico distribuito possono essere separati da continenti, pur mantenendo la loro operabilità.

Collegamento di reti di calcolo distribuite

L'obiettivo dei sistemi di calcolo distribuiti è quello di far funzionare quella rete di calcolo distribuito, indipendentemente dalla dimensione e dalla posizione dei suoi componenti, come se fosse un singolo computer. Questo coordinamento viene realizzato attraverso un elaborato sistema di passaggio di messaggi tra i vari componenti.

I protocolli di comunicazione regolano lo scambio di messaggi avanti e indietro e creano una forma di relazione esistente tra questi componenti. Questa relazione è nota come “accoppiamento”, in genere espresso in due forme:

  • Accoppiamento allentato: la connessione tra due componenti ad accoppiamento allentato è sufficientemente debole, affinché le alterazioni a un componente non influiscano sull'altro.
  • Accoppiamento stretto: il livello di sincronizzazione e parallelismo è così elevato nei componenti strettamente accoppiati che un processo chiamato "cluster" utilizza componenti ridondanti per garantire la fruibilità continua del sistema.

Il calcolo distribuito si occupa anche degli effetti positivi e negativi della concorrenza, ovvero l'esecuzione simultanea di più sequenze di istruzioni operative. La principale, tra le sue qualità positive, consiste nel fatto che la concorrenza supporta il calcolo parallelo di più thread di processo. (Il calcolo parallelo non deve essere confuso con l'elaborazione parallela, che è un processo in base al quale le attività di runtime vengono suddivise in attività più piccole).

Gli aspetti negativi associati alla concorrenza spesso includono una maggiore latenza e persino colli di bottiglia in cui il traffico quasi si interrompe a causa del sovraccarico del sistema informatico distribuito, con un numero eccessivo di richieste di componenti.

La concorrenza è diversa dal concetto di multithreading, che consente a un programma di rimanere in esecuzione mentre altre attività vengono eseguite in background. La concorrenza rappresenta un maggiore dispendio di risorse, poiché più thread vengono eseguiti contemporaneamente e accedono simultaneamente a risorse condivise.

AI Academy

Prepararsi all'AI con l'hybrid cloud

Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.

Benefici del calcolo distribuito

Perfetto per progetti di grandi dimensioni

Alcuni workload sono enormi e superiori a quelli che la maggior parte dei singoli sistemi può gestire. Il calcolo distribuito condivide tali workload tra più attrezzature, così che i lavori di grandi dimensioni possano essere affrontati in modo efficace.

Supporta la condivisione delle risorse

Il calcolo distribuito funziona in base al concetto di asset condivisi e supporta la condivisione di risorse come dati, software e hardware tra i vari componenti all'interno di quell'istanza di calcolo distribuito.

Ideale per le variazioni del traffico

Il traffico online di molte organizzazioni è soggetto a cambiamenti rapidi e drammatici, magari a causa di notizie riportate o di altri fattori. Il calcolo distribuito offre la flessibilità di cui le aziende necessitano per resistere a questi picchi.

Prestazioni ottimizzate

Il calcolo distribuito aumenta i livelli delle prestazioni suddividendo i lavori di elaborazione di grandi dimensioni in compiti di calcolo più piccoli, condivisi da numerosi computer. Questo si traduce in una quantità cumulativa di velocità di elaborazione e in un maggiore storage complessivo.

Convenienza nei costi

Sebbene sia vero che il calcolo distribuito, con i suoi molteplici sistemi, presenti costi iniziali maggiori rispetto ai sistemi di elaborazione centralizzati, nel tempo tali costi si riducono in media a causa dell'efficienza dei costi ottenuta attraverso una latenza inferiore e tempi di risposta più rapidi, rendendo in ultima analisi il calcolo distribuito più conveniente rispetto ai sistemi centralizzati.

Tipi di calcolo distribuito

I tipi di calcolo distribuito sono classificati in base all'architettura di calcolo distribuito che ciascuno utilizza.

Sistema client-server

I sistemi client-server utilizzano un'architettura client-server che consente loro di essere utilizzati con più sistemi. Nei sistemi client-server, un client indirizza l'input al server sotto forma di richiesta. Questa comunicazione comporta in genere un comando che richiede l'esecuzione di una particolare attività o una richiesta di ulteriori risorse di elaborazione. Il server lavora quindi per eseguire tale attività o per allocare le risorse richieste. Una volta completato, il server risponde al client con un messaggio relativo all'azione intrapresa.

Sistema peer

Mentre i sistemi centralizzati utilizzano l'architettura client-server, un sistema peer si basa sull'architettura peer (spesso chiamata architettura peer-to-peer). I sistemi peer utilizzano nodi, che possono effettivamente funzionare come client o server, identificando le esigenze ed emettendo richieste o lavorando per soddisfare tali esigenze e riferire sulle operazioni. Come suggerisce il nome, non c'è gerarchia nei sistemi peer, quindi i programmi che operano in sistemi peer-to-peer possono comunicare liberamente tra loro e trasferire dati tramite reti peer.

Middleware

Il middleware può essere considerato come un tipo di "intermediario" che opera tra due applicazioni distinte, vale a dire che il middleware è esso stesso un'applicazione che risiede tra due applicazioni e fornisce servizi a entrambe. Il middleware ha anche un aspetto interpretativo. Funge da traduttore tra varie app di interoperabilità che vengono eseguite su sistemi diversi e consente a tali app di scambiare liberamente i dati.

Sistema a tre livelli

I sistemi a tre livelli sono così chiamati a causa del numero di livelli utilizzati per rappresentare la funzionalità di un programma. A differenza della tipica architettura client-server in cui i dati vengono inseriti all'interno del sistema client, il sistema a tre livelli mantiene invece i dati memorizzati nel livello intermedio, chiamato livello dei dati. Il livello dell'applicazione circonda il livello dei dati su uno dei suoi lati, mentre il livello di presentazione circonda il livello dei dati sull'altro lato. I sistemi a tre livelli sono comunemente utilizzati in varie applicazioni web.

Sistema N-tier

A volte denominati sistemi distribuiti a più livelli, i sistemi N-tier hanno una capacità illimitata di funzioni di rete, che indirizzano ad altre app per l'elaborazione. L'architettura dei sistemi N-tier è come quella dei sistemi a tre livelli. I sistemi N-tier sono spesso utilizzati come architettura di base per numerosi servizi web e sistemi di dati.

Altri paradigmi di calcolo distribuito

Il calcolo distribuito consente l'uso di diversi paradigmi di programmazione (che possono essere pensati come stili di programmazione):

  • Blockchain: la blockchain è una sorta di database o libro mastro distribuito che viene replicato e sincronizzato sui vari computer che compongono una rete. Una blockchain assicura uno degli obiettivi principali del calcolo distribuito, ovvero la ridondanza, perché ogni computer della catena detiene una copia del libro mastro originale affinché i i dati non possano essere persi a causa di un singolo punto di errore.
  • Grid computing: il grid computing è un tipo di calcolo distribuito che si occupa di workload non interattivi, che di solito coinvolgono una combinazione di framework e software middleware. La griglia scalabile a cui si accede tramite l'interfaccia utente funziona come un file system di grandi dimensioni.
  • Microservizi: i microservizi sono un'altra forma di calcolo distribuito in cui le applicazioni sono suddivise in componenti molto più piccoli, spesso chiamati "servizi". I framework dei servizi sono uniti dall'application program interface (API), che consente l'interazione tra i componenti.

Casi d'uso del calcolo distribuito per settore industriale

Settore bancario

L'online banking dimostra la bravura del calcolo distribuito operando in più luoghi contemporaneamente, spesso con diverse sedi bancarie incaricate di ospitare uno dei server alla base delle principali offerte di servizi (come il servizio clienti, la sicurezza e l'elaborazione delle transazioni). Tutto avviene in modo istantaneo e senza interruzioni, proprio come si aspettano i clienti della banca.

Informatica

Sia l'intelligenza artificiale (AI) che il machine learning (ML) stanno rivoluzionando molti campi tecnologici, ma in nessun settore i loro effetti sono più pronunciati in questo momento che in quello informatico stesso. Entrambe le tecnologie in rapida evoluzione fanno largo uso del calcolo distribuito. Gli algoritmi alla base di AI e ML necessitano di grandi volumi di dati per addestrare i propri modelli e il calcolo distribuito fornisce la potenza di elaborazione necessaria.

Energy & utilities

Il calcolo distribuito è attualmente utilizzato nei settori dell'energia e dell'ambiente. Per quanto riguarda l'energia, il calcolo distribuito sta aiutando la tecnologia delle reti intelligenti a regolare l'uso e ottimizzare i consumi energetici. Le reti intelligenti utilizzano il calcolo distribuito anche per raccogliere dati ambientali da diversi dispositivi di input, come sensori e contatori intelligenti.

Trasformazione finanziaria

I lavoratori in aree specifiche della finanza stanno già utilizzando sistemi informatici distribuiti. Prendiamo la gestione del rischio, in cui gli istituti finanziari necessitano di vasti regni di dati per eseguire enormi calcoli e informare meglio il processo decisionale sulla valutazione delle probabilità e del rischio. Il calcolo distribuito garantisce che i carichi computazionali siano condivisi in modo uniforme tra più sistemi.

Scienza

Il calcolo distribuito ha aiutato numerose discipline scientifiche e ha contribuito ad alcuni dei risultati più importanti della scienza. Gli esempi includono il Large Hadron Collider, l'acceleratore di particelle più potente del mondo. Gli esperimenti alla base dipendono da un'estrema quantità di raccolta e analisi dei dati, che richiedono l'uso del calcolo distribuito. Allo stesso modo, il calcolo distribuito ha supportato il Progetto genoma umano, finalizzato a mappare le sequenze del DNA umano. Il calcolo distribuito svolge anche un ruolo essenziale nel forecasting e nella modellazione climatica.

Soluzioni correlate
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Center è una piattaforma software compatibile con OpenStack per gestire l'infrastruttura di cloud privati su IBM zSystems e IBM LinuxONE.

Esplora Cloud Infrastructure Center
Soluzioni per l'infrastruttura IT

Scopri i server, lo storage e il software progettati per l'hybrid cloud e la strategia AI della tua azienda.

Scopri le soluzioni per le infrastrutture IT
Soluzioni per l'infrastruttura cloud

Trova la soluzione di infrastruttura cloud adatta alle esigenze della tua azienda e scala le risorse on-demand.

Soluzioni cloud
Fai il passo successivo

Trasforma la sua infrastruttura aziendale con l'hybrid cloud e le soluzioni pensate per l'AI di IBM. Scopri i server, lo storage e i software progettati per proteggere, scalare e modernizzare la tua azienda o ascolta i pareri degli esperti per migliorare la tua strategia di AI generativa.

Scopri le soluzioni per le infrastrutture IT Scarica l'ebook