Was ist ein verteilter Algorithmus?

Ein verteilter Algorithmus ist ein spezieller Algorithmustyp, der in Computersoftware verwendet wird und verschiedene, miteinander verbundene Prozessoren verwenden muss. Der verteilte Algorithmus ist dafür verantwortlich, verschiedene Teile des Algorithmus gleichzeitig auszuführen, jeder auf einem anderen Prozessor. Die Prozessoren müssen dann miteinander kommunizieren, damit die Software richtig läuft.

Um den verteilten Algorithmus zu verstehen, ist es am einfachsten zu untersuchen, was ein typischer Algorithmus ist. Ein Algorithmus ist ein definierter Prozess, der von Anfang bis Ende die Schritte umreißt, die unternommen werden müssen, um den gewünschten Prozess abzuschließen oder ein Problem zu lösen. Ein Algorithmus zum Versenden eines Briefes würde beispielsweise in etwa so aussehen:
1. Umschlag erhalten
2. Umschlag öffnen
3. Buchstaben einfügen
4. Umschlag schließen
5. Stempel anbringen

Dies würde so lange dauern, bis der Vorgang abgeschlossen ist. Bestimmte Schritte können in andere Schritte verzweigen. Diese würden der Person sagen, was zu tun ist, wenn sie einen der Hauptschritte nicht ausführen kann, und sie schließlich zum ursprünglichen Algorithmus zurückführen. Wichtig ist, dass der Algorithmus irgendwann ein Ende haben muss, egal welchen Weg die Person nimmt, um ihn zu erreichen.

Technisch kann alles, was ein definierter Prozess ist, ein Algorithmus sein, wie das obige Beispiel für das Versenden eines Briefes. Ein Computeralgorithmus ist ein Algorithmus, der dem Computer sagt, was er tun soll. Es hat einen Anfangs- und einen Endschritt mit mehreren Schritten dazwischen. Es hilft dem Computer, eine Aktion auszuführen und weist ihn an, was zu tun ist, wenn etwas schief geht. Wenn eine vom Computer benötigte Datei fehlt, wird er möglicherweise angewiesen, diesen Schritt zu überspringen oder stattdessen einen anderen Schritt auszuführen.

Der Unterschied zwischen einem Algorithmus und einem verteilten Algorithmus besteht einfach darin, dass der verteilte Algorithmus darauf ausgelegt ist, auf separaten Prozessoren zu laufen, während dies bei einem normalen Computeralgorithmus nicht der Fall wäre. Jeder Prozessor führt gleichzeitig einen anderen Teil des Gesamtalgorithmus aus und übermittelt dann die Ergebnisse.

Bei der Verwendung verteilter Algorithmen treten mehrere Probleme auf. Einer der Prozessoren könnte ausfallen, wodurch dieser Teil des Algorithmus nicht mehr funktioniert. Es könnte auch ein Kommunikationsproblem zwischen Prozessoren vorliegen, das den verteilten Algorithmus davon abhalten würde, das Ende des Prozesses zu erreichen. Viele Programmierer untersuchen verteilte Algorithmen, um Wege zur Überwindung dieser Probleme zu finden und sicherzustellen, dass der Algorithmus auch bei einem technischen Fehler abgeschlossen wird.