Co je distribuované programování?

Distribuované programování je jedna forma paralelního programování nebo paralelního výpočtu. Paralelní programování zahrnuje počítače a výpočetní jednotky v počítačích pracujících souběžně na konkrétním problému, jako je předpovídání zítřejšího počasí. Výpočetní jednotky mohou být velmi úzce umístěny a koordinovány nebo mohou být umístěny od sebe. Když jsou výpočetní jednotky od sebe, nazývá se distribuované programování. V takovém scénáři se výpočetní jednotky velmi často liší od sebe navzájem a operační systém a nastavení sítě se také liší, takže programování výpočetní aktivity zvláště náročné. Tyto části se často nazývají „procesy“. Procesy běží současně, ale musí si navzájem komunikovat vstupy a výsledky. Pokud procesy běží na různých hardwarech, například jedna část běžící na Intel a AnotJejí běh na slunci, pak programy musí být zkompilovány a optimalizovány odlišně.

Jedním ze způsobů, jak vyřešit dostatečně obtížný problém, je rozbít vstupní části a nechat různé výpočetní jednotky pracovat na různých částech pomocí stejného algoritmu, sady pravidel nebo kroků pro řešení problémů. Například pro prasknutí genomu 10 000 párů by mohlo být prvních 1 000 párů přiřazeno k první výpočetní jednotce, druhý 1 000 párů přiřazených druhé výpočetní jednotce atd. Všechny používají stejný algoritmus. S distribuovaným programováním je jednou z výhod, že různé výpočetní jednotky by mohly spustit různé algoritmy k vyřešení stejného problému, což vedlo k výrazně lepšímu řešení. To se podobá řešení skládačky s některými lidmi, kteří spojují hranici, zatímco jiní sestavují kousky konkrétní barvy.

Koordinace distribuovaného výpočtuProcesy mohou být obzvláště obtížným úkolem. Některé výpočetní jednotky mohou selhat nebo mohou být přerušeny, aby zvládly další práci. Zprávy obsahující vstupy nebo výsledky výpočtu mohou dosáhnout jejich cílů. Pokud jsou programy zapsány naivním způsobem, může ztráta výpočetní jednotky nebo některých zpráv způsobit zavěšení celé sady počítačů.

V distribuovaném programování by mohl být jedním procesem procesem kontroly, v zásadě dokončit práci jinými procesy, nebo by všechny procesy mohly fungovat způsobem peer-to-peer, aniž by byl žádný proces „Master“. Některé příklady problémů pokusů o distribuované programování zahrnují analýzu geologických údajů pro zdroje, jako je ropa, modelování proteinů a biologické molekuly, praskání kódovaných zpráv a vojenské simulace. Projekt SETI pro vyhledávání inteligentního mimozemského života z rozhlasových zpráv obdržených společností Země je možná jedním z nejznámějších příkladů.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?