Che cos’è un algoritmo distribuito?

Un algoritmo distribuito è un tipo specifico di algoritmo utilizzato su un software per computer che deve utilizzare vari processori interconnessi. L’algoritmo distribuito è responsabile dell’esecuzione simultanea di diverse parti dell’algoritmo, ciascuna su un processore diverso. I processori devono quindi comunicare tra loro affinché il software funzioni correttamente.

Per comprendere l’algoritmo distribuito, è più semplice esaminare che cos’è un algoritmo tipico. Un algoritmo è un processo definito che delinea dall’inizio alla fine i passaggi che devono essere presi per completare il processo desiderato o risolvere un problema. Ad esempio, un algoritmo per spedire una lettera andrebbe in qualcosa del tipo:
1. Prendi la busta
2. Aprire la busta
3. Inserisci lettera
4. Chiudi la busta
5. Allega il timbro

Questo continuerà fino al completamento del processo. Alcuni passaggi possono diramarsi in altri passaggi. Questi direbbero alla persona cosa fare se non riuscisse a completare uno dei passaggi principali e alla fine lo ricondurrebbero all’algoritmo originale. L’importante è che l’algoritmo alla fine abbia una fine, indipendentemente dal percorso che la persona intraprende per raggiungerlo.

Tecnicamente tutto ciò che è un processo definito può essere un algoritmo, come l’esempio sopra per l’invio di una lettera. Un algoritmo informatico è un algoritmo progettato per dire al computer cosa fare. Ha un inizio e un passaggio finale con diversi passaggi intermedi. Aiuta il computer a eseguire un’azione e gli indica cosa fare se qualcosa va storto. Se manca un file di cui il computer ha bisogno, potrebbe indicargli di saltare quel passaggio o di eseguire un passaggio alternativo al suo posto.

La differenza tra un algoritmo e un algoritmo distribuito è semplicemente che l’algoritmo distribuito è progettato per funzionare su processori separati mentre un normale algoritmo per computer non lo sarebbe. Ogni processore esegue contemporaneamente una parte diversa dell’algoritmo complessivo e quindi invia i risultati.

Ci sono diversi problemi che si verificano quando si utilizzano algoritmi distribuiti. Uno dei processori potrebbe guastarsi, causando l’interruzione del funzionamento di quella parte dell’algoritmo. Potrebbe anche esserci un problema di comunicazione tra i processori che impedirebbe all’algoritmo distribuito di raggiungere la fine del processo. Molti programmatori studiano algoritmi distribuiti per scoprire modi per superare questi problemi e garantire che l’algoritmo sia completato anche in caso di errore tecnico.