Co je distribuovaný algoritmus?
Distribuovaný algoritmus je specifický typ algoritmu používaného v počítačovém softwaru, který musí používat různé vzájemně propojené procesory. Distribuovaný algoritmus je zodpovědný za běh různých částí algoritmu současně, každý na jiném procesoru. Procesory pak musí navzájem komunikovat, aby software fungoval správně.
Abychom porozuměli distribuovanému algoritmu, je nejjednodušší prozkoumat, co je typický algoritmus. Algoritmus je definovaný proces, který nastíní od začátku do konce kroky, které je třeba podniknout k dokončení požadovaného procesu nebo k vyřešení problému. Například algoritmus pro zasílání dopisů by šel něco podle řádků:
1. Získejte obálku
2. Otevřete obálku
3. Vložte dopis
4. Zavřete obálku
5. Připojte razítko
To by pokračovalo, dokud nebude proces dokončen. Některé kroky se mohou rozdělit do jiných kroků. To by člověku řeklo, co má dělat, kdyby nemohl dokončit jeden z hlavních kroků a nakonec by ho dovedl zpět k původnímu algoritmu. Důležité je, že algoritmus musí nakonec mít konec bez ohledu na to, jakou cestou se osoba k němu dostane.
Technicky cokoli, co je definovaným procesem, může být algoritmus, jako je výše uvedený příklad pro zaslání dopisu. Počítačový algoritmus je algoritmus navržený tak, aby počítači sdělil, co má dělat. Má začátek a konec kroku s několika kroky mezi nimi. Pomáhá počítači provádět akci a dává mu pokyny, co dělat, když se něco pokazí. Pokud soubor, který počítač potřebuje, chybí, může mu nařídit tento krok přeskočit nebo provést alternativní krok na jeho místě.
Rozdíl mezi algoritmem a distribuovaným algoritmem je jednoduše v tom, že distribuovaný algoritmus je navržen pro provoz na samostatných procesorech, zatímco běžný počítačový algoritmus by nebyl. Každý procesor provádí současně jinou část celkového algoritmu a poté předkládá výsledky.
Při použití distribuovaných algoritmů dochází k několika problémům. Jeden z procesorů by mohl selhat a způsobit, že část algoritmu přestane fungovat. Mohl by také existovat komunikační problém mezi procesory, který by zabránil distribuovanému algoritmu v dosažení konce procesu. Mnoho programátorů studuje distribuované algoritmy, aby nalezly způsoby, jak tyto problémy překonat a zajistit, aby byl algoritmus dokončen, i když dojde k technické chybě.