Vad är en distribuerad algoritm?

En distribuerad algoritm är en specifik typ av algoritm som används på datorprogramvara som måste använda olika sammankopplade processorer. Den distribuerade algoritmen är ansvarig för att köra olika delar av algoritmen samtidigt, var och en på en annan processor. Processorerna måste sedan kommunicera med varandra för att programvaran ska fungera korrekt.

För att förstå den distribuerade algoritmen är det enklast att undersöka vad en typisk algoritm är. En algoritm är en definierad process som beskriver från början till slut de steg som måste tas för att slutföra den önskade processen eller lösa ett problem. Till exempel skulle en algoritm för att skicka ett brev gå något i stil med:
1. Skaffa kuvert
2. Öppna kuvertet
3. Infoga bokstav
4. Stäng kuvertet
5. Fäst stämpel

Detta kommer att fortsätta tills processen har slutförts. Vissa steg kan förgrena sig till andra steg. Dessa skulle tala om för personen vad han skulle göra om han inte kunde slutföra ett av huvudstegen och skulle så småningom leda honom tillbaka till den ursprungliga algoritmen. Det viktiga är att algoritmen så småningom måste ha ett slut oavsett vilken väg personen tar för att nå den.

Tekniskt sett kan allt som är en definierad process vara en algoritm, som exemplet ovan för att skicka ett brev. En datoralgoritm är en algoritm utformad för att tala om för datorn vad den ska göra. Den har ett början och ett slutsteg med flera steg emellan. Den hjälper datorn att utföra en åtgärd och instruerar den vad den ska göra om något går fel. Om en fil som datorn behöver saknas kan den instruera den att hoppa över det steget eller utföra ett alternativt steg i dess ställe.

Skillnaden mellan en algoritm och en distribuerad algoritm är helt enkelt att den distribuerade algoritmen är utformad för att köras på separata processorer medan en vanlig datoralgoritm inte skulle vara det. Varje processor utför en annan del av den övergripande algoritmen samtidigt och skickar sedan in resultaten.

Det finns flera problem som uppstår när man använder distribuerade algoritmer. En av processorerna kan misslyckas, vilket gör att den delen av algoritmen slutar fungera. Det kan också finnas ett kommunikationsproblem mellan processorer som skulle hindra den distribuerade algoritmen från att nå slutet av processen. Många programmerare studerar distribuerade algoritmer för att ta reda på sätt att övervinna dessa problem och säkerställa att algoritmen är klar även om det finns ett tekniskt fel.