Was ist ein verteilter Algorithmus?
Ein verteilter Algorithmus ist eine bestimmte Art von Algorithmus, der in Computersoftware verwendet wird und der verschiedene miteinander verbundene Prozessoren verwenden muss. Der verteilte Algorithmus ist dafür verantwortlich, dass verschiedene Teile des Algorithmus gleichzeitig auf einem anderen Prozessor ausgeführt werden. Die Prozessoren müssen dann miteinander kommunizieren, damit die Software ordnungsgemäß ausgeführt wird.
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 beschreibt, die ausgeführt 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 folgendermaßen aussehen:
1. Umschlag holen
2. Umschlag öffnen
3. Brief einfügen
4. Umschlag schließen
5. Stempel anbringen
Dies würde so lange fortgesetzt, 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 könnte, und sie würde 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 mitteilt, was zu tun ist. Es hat einen Anfangs- und einen Endschritt mit mehreren Zwischenschritten. Es unterstützt den Computer bei der Ausführung einer Aktion und weist ihn an, was zu tun ist, wenn ein Fehler auftritt. Wenn eine Datei fehlt, die der Computer benötigt, wird er möglicherweise angewiesen, diesen Schritt zu überspringen oder an seiner Stelle einen alternativen Schritt auszuführen.
Der Unterschied zwischen einem Algorithmus und einem verteilten Algorithmus besteht einfach darin, dass der verteilte Algorithmus für die Ausführung auf separaten Prozessoren ausgelegt ist, während dies bei einem normalen Computeralgorithmus nicht der Fall wäre. Jeder Prozessor führt gleichzeitig einen anderen Teil des Gesamtalgorithmus aus und sendet dann die Ergebnisse.
Bei der Verwendung verteilter Algorithmen treten verschiedene Probleme auf. Einer der Prozessoren könnte ausfallen und dazu führen, dass dieser Teil des Algorithmus nicht mehr funktioniert. Es könnte auch ein Kommunikationsproblem zwischen Prozessoren geben, das verhindern würde, dass der verteilte Algorithmus das Ende des Prozesses erreicht. Viele Programmierer untersuchen verteilte Algorithmen, um Möglichkeiten zur Überwindung dieser Probleme zu finden und sicherzustellen, dass der Algorithmus auch dann vollständig ist, wenn ein technischer Fehler vorliegt.