Co to jest programowanie rozproszone?

Programowanie rozproszone jest jedną formą równoległego programowania lub obliczeń równoległych. Programowanie równoległe obejmuje komputery i jednostki obliczeniowe w komputerach pracujących jednocześnie nad konkretnym problemem, na przykład przewidywanie pogody jutra. Jednostki obliczeniowe mogą być bardzo ściśle zlokalizowane i skoordynowane lub mogą być zlokalizowane od siebie. Gdy jednostki obliczeniowe są osobno, nazywa się to programowaniem rozproszonym. W takim scenariuszu bardzo często jednostki obliczeniowe różnią się od siebie, a system operacyjny i konfiguracja sieci różni się również, co jest szczególnie trudne, aby programowanie działalności obliczeniowej.

Podczas rozwiązania problemu w rozproszony program musi zostać podzielony, aby części programu mogły działać na różnych jednostkach komputerowych; Części te są często nazywane „procesami”. Procesy działają jednocześnie, ale muszą komunikować wejścia i wyniki. Jeśli procesy działają na innym sprzęcie, na przykład jedna część działająca na Intel i AnotJej bieganie na słońcu, a następnie programy muszą być skompilowane i zoptymalizowane inaczej.

Jednym ze sposobów rozwiązania wystarczająco trudnego problemu jest rozbicie części wejściowych i sprawienie, aby różne jednostki obliczeniowe działają na różnych częściach za pomocą tego samego algorytmu, zestawu reguł lub kroków do rozwiązywania problemów. Na przykład, aby złamać genom 10 000 par, pierwsze 1000 par można przypisać do pierwszej jednostki obliczeniowej, drugiej 1000 par przypisanych do drugiej jednostki obliczeniowej i tak dalej, wszystkie używa tego samego algorytmu. W programowaniu rozproszonym jedną zaletą jest to, że różne jednostki obliczeniowe mogą uruchomić różne algorytmy w celu rozwiązania tego samego problemu, co prowadzi do znacznie lepszego rozwiązania. Jest to podobne do rozwiązania układanki, a niektórzy ludzie składają granicę, podczas gdy inni składają kawałki określonego koloru.

Koordynacja obliczeń rozproszonychProcesy mogą być szczególnie trudnym zadaniem. Niektóre jednostki obliczeniowe mogą się nie powieść lub mogą zostać przerwane w celu obsługi innych prac. Wiadomości zawierające dane wejściowe lub wyniki obliczeń mogą nie dotrzeć do ich miejsc docelowych. Jeśli programy są napisane w sposób naiwny, utrata jednostki obliczeniowej lub niektórych wiadomości może spowodować zawieszenie całego zestawu komputerów.

W programowaniu rozproszonym jednym procesem może być proces kontrolowania, zasadniczo wykonywanie pracy przez inne procesy lub wszystkie procesy mogą działać w sposób peer-to-peer bez procesu „mistrza”. Niektóre przykłady problemów z programowaniem rozproszonym obejmują analizę danych geologicznych dla zasobów, takich jak ropa naftowa, modelowanie białek i cząsteczek biologicznych, pękanie zakodowanych wiadomości i symulacje wojskowe. Projekt SETI do wyszukiwania inteligentnego życia pozaziemskiego z wiadomości radiowych otrzymanych przez Ziemię jest prawdopodobnie jednym z najbardziej znanych przykładów.

INNE JĘZYKI