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 ansvarar 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 lättast 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 vidtas för att slutföra önskad process eller lösa ett problem. Till exempel skulle en algoritm för att skicka ett brev gå något i linje med:
1. Skaffa kuvert
2. Öppna kuvertet
3. Sätt in brev
4. Stäng kuvertet
5. Fäst stämpel
Detta fortsätter tills processen är klar. Vissa steg kan förgrena sig till andra steg. Dessa skulle säga personen vad han ska göra om han inte kunde fullfölja ett av huvudstegen och så småningom skulle leda honom tillbaka till den ursprungliga algoritmen. Det viktiga är att algoritmen så småningom måste få slut oavsett vilken väg personen tar för att nå den.
Tekniskt kan allt som är en definierad process vara en algoritm, såsom exemplet ovan för att skicka ett brev. En datoralgoritm är en algoritm utformad för att berätta för datorn vad man ska göra. Det har ett början och ett slutsteg med flera steg emellan. Det hjälper datorn att utföra en åtgärd och instruerar den vad man ska göra om något går fel. Om en fil datorn behöver saknas kan den instruera den att hoppa över det steget eller utföra ett alternativt steg på sin plats.
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 totala algoritmen samtidigt och skickar sedan in resultaten.
Det finns flera problem som uppstår när du använder distribuerade algoritmer. En av processorerna kunde misslyckas, vilket fick den delen av algoritmen att sluta fungera. Det kan också vara 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 lösa dessa problem och se till att algoritmen är klar även om det finns ett tekniskt fel.