Un algoritm distribuit este un tip specific de algoritm utilizat pe software-ul de calculator care trebuie să utilizeze diferite procesoare interconectate. Algoritmul distribuit este responsabil pentru rularea diferitelor părți ale algoritmului în același timp, fiecare pe un procesor diferit. Procesoarele trebuie apoi să comunice între ele pentru ca software-ul să ruleze corect.
Pentru a înțelege algoritmul distribuit, este cel mai ușor să examinăm ce este un algoritm tipic. Un algoritm este un proces definit care conturează de la început până la sfârșit pașii care trebuie parcurși pentru a finaliza procesul dorit sau pentru a rezolva o problemă. De exemplu, un algoritm pentru trimiterea prin poștă a unei scrisori ar merge ceva de genul:
1. Obțineți un plic
2. Deschideți plicul
3. Introduceți scrisoarea
4. Închideți plicul
5. Atașați ștampila
Acest lucru va continua până la finalizarea procesului. Anumiți pași se pot ramifica în alți pași. Acestea i-ar spune persoanei ce să facă dacă nu ar putea parcurge unul dintre pașii principali și, în cele din urmă, l-ar conduce înapoi la algoritmul original. Important este că algoritmul trebuie să aibă în cele din urmă un sfârșit, indiferent de calea pe care o ia persoana pentru a ajunge la el.
Din punct de vedere tehnic, orice este un proces definit poate fi un algoritm, cum ar fi exemplul de mai sus pentru trimiterea unei scrisori. Un algoritm de computer este un algoritm conceput pentru a spune computerului ce trebuie să facă. Are un început și un pas de sfârșit, cu mai mulți pași între ele. Ajută computerul să efectueze o acțiune și îi indică ce să facă dacă ceva nu merge bine. În cazul în care lipsește un fișier de care computerul are nevoie, acesta i-ar putea solicita să omite acel pas sau să efectueze un pas alternativ în locul lui.
Diferența dintre un algoritm și un algoritm distribuit este pur și simplu că algoritmul distribuit este proiectat să ruleze pe procesoare separate, în timp ce un algoritm de computer obișnuit nu ar fi. Fiecare procesor efectuează o parte diferită a algoritmului general în același timp și apoi trimite rezultatele.
Există mai multe probleme care apar atunci când se utilizează algoritmi distribuiți. Unul dintre procesoare ar putea eșua, ceea ce face ca acea parte a algoritmului să nu mai funcționeze. Ar putea exista și o problemă de comunicare între procesoare care ar împiedica algoritmul distribuit să ajungă la sfârșitul procesului. Mulți programatori studiază algoritmi distribuiți pentru a găsi modalități de a depăși aceste probleme și pentru a se asigura că algoritmul este finalizat chiar dacă există o eroare tehnică.