Jakie są rodzaje technologii przetwarzania równoległego?

Przetwarzanie równoległe to rodzaj przetwarzania komputerowego, w którym duże zadania obliczeniowe są dzielone na mniejsze podzadania, które są następnie przetwarzane jednocześnie lub równolegle, a nie sekwencyjnie. Technologia ta jest szeroko stosowana we współczesnej informatyce, zwłaszcza w przypadku zaawansowanych problemów, takich jak te, którymi zajmują się nauki przyrodnicze. Przykłady technologii przetwarzania równoległego w jednym urządzeniu obejmują symetryczne przetwarzanie wieloprocesorowe i przetwarzanie wielordzeniowe. Wiele komputerów można również połączyć ze sobą w celu równoległej pracy za pomocą metod takich jak przetwarzanie rozproszone, klastry komputerowe i komputery masowo równoległe.

Symetryczny procesor wieloprocesorowy to komputer z pojedynczą wspólną pamięcią główną i instancją systemu operacyjnego połączoną z wieloma identycznymi procesorami. Procesory mają te same możliwości i są połączone ze wspólną pamięcią, dzięki czemu zadania można łatwo przypisywać lub ponownie przydzielać w razie potrzeby, aby zrównoważyć obciążenie między nimi. W przetwarzaniu wielordzeniowym każdy procesor zawiera co najmniej dwie jednostki centralne (CPU), zwane rdzeniami, które są odpowiedzialne za odczytywanie i wykonywanie instrukcji. Zasadniczo procesor wielordzeniowy to w rzeczywistości wiele procesorów w jednym zintegrowanym komponencie. Pozwala to na szybszą i wydajniejszą komunikację między rdzeniami przetwarzania w porównaniu z komputerami wieloprocesorowymi, w których każdy procesor jest osobnym komponentem.

Komputery wieloprocesorowe znajdują szerokie zastosowanie w aplikacjach naukowych i biznesowych. Jest to mniej powszechne w systemach komputerów osobistych, które zwykle są projektami jednoprocesorowymi, chociaż na rynku konsumenckim coraz częściej występują wieloprocesory. Oprogramowanie komputerowe musi być specjalnie zaprojektowane dla komputerów wieloprocesorowych, aby w pełni wykorzystać korzyści, jakie może zapewniać, a tego typu oprogramowanie często powoduje problemy z wydajnością na komputerze z jednym procesorem. Podobnie programy napisane z myślą o pojedynczym procesorze zwykle uzyskują tylko ograniczone korzyści z wieloprocesorowości, ponieważ nie są zaprojektowane do korzystania z niej.

Rozproszona technologia przetwarzania równoległego wykorzystuje wiele, skądinąd niezależnych, komputerów pracujących równolegle nad różnymi częściami problemu, połączonych ze sobą za pośrednictwem Internetu lub sieci wewnętrznej, aby mogły się ze sobą komunikować. Ten rodzaj technologii przetwarzania równoległego może być używany z komputerami, które są fizycznie oddalone od siebie, chociaż nie zawsze tak jest. Połączone komputery tworzą razem tak zwaną siatkę obliczeniową.

Siatki obliczeniowe mogą być bardzo duże i potencjalnie zawierać tysiące komputerów, które mogą być rozsiane po całym świecie. Te komputery mogą również pracować nad niepowiązanymi problemami w tym samym czasie, a zadania są wykonywane przez siatkę rozdzieloną między komputery w zależności od tego, ile wolnych mocy obliczeniowych każdy z nich ma w danym momencie. Przetwarzanie siatkowe różni się od większości innych nowoczesnych obliczeń równoległych, ponieważ pojedyncza siatka często zawiera zróżnicowaną tablicę komputerów o różnych możliwościach, a nie grupę identycznych jednostek.

Klastry komputerowe są formą technologii przetwarzania równoległego, w której wiele połączonych komputerów, zwykle o identycznych możliwościach, ściśle ze sobą współpracuje jako pojedyncza jednostka. W przeciwieństwie do symetrycznego przetwarzania wieloprocesowego, które wykorzystuje wiele procesorów współużytkujących wspólną pamięć i system operacyjny, każda pojedyncza jednostka w klastrze jest całkowicie samodzielnym komputerem. Zwykle znajdują się one w tej samej lokalizacji geograficznej i są połączone w sieci lokalnej. Niektóre komputery są budowane specjalnie do użytku w klastrach komputerowych, ale klastry można również tworzyć przez połączenie komputerów, które pierwotnie zostały zaprojektowane do pracy autonomicznej.
Komputery masowo równoległe mają pewne podobieństwa do komputerów klastrowych, ponieważ składają się również z wielu połączonych komputerów, ale są znacznie większe i zwykle zawierają setki lub tysiące węzłów. Posiadają również własne wyspecjalizowane komponenty łączące poszczególne komputery, które je tworzą, podczas gdy klastry komputerowe są połączone ze sobą standardowym, gotowym sprzętem często określanym jako komponenty towarowe. Najbardziej zaawansowane komputery masowo równoległe mogą być naprawdę kolosalne, ponieważ zawierają dziesiątki tysięcy pojedynczych komputerów wypełniających tysiące stóp kwadratowych przestrzeni, wszystkie współpracujące ze sobą. Większość zaawansowanych superkomputerów na świecie, używanych do złożonych obliczeń w dziedzinach takich jak astrofizyka i globalne modelowanie klimatu, jest tego typu.