Co to jest przetwarzanie równoległe?

Przetwarzanie równoległe występuje, gdy komputer wykonuje więcej niż jedno zadanie jednocześnie. Ta technika pozwala komputerom działać szybciej niż robienie jednej rzeczy naraz, tak jak osoba z dwiema wolnymi rękami może nosić więcej niż osoba z jedną wolną ręką. Tradycyjnie programy komputerowe są projektowane w sposób, który niekoniecznie pozwala na przetwarzanie równoległe, ale zamiast tego musi być wykonywany krok po kroku. Aby program mógł zostać obliczony w ten sposób, musi być zaprojektowany tak, aby można go było podzielić na mniejsze zadania, które można wykonać indywidualnie. Jako przykład tego, jak przetwarzanie równoległe odnosi się do przeciętnego człowieka, wiele komputerów osobistych ma wiele rdzeni przetwarzających, które umożliwiają im przetwarzanie wielu zadań w tym samym czasie, zamiast wykonywania jednego zadania po drugim, jak w przypadku komputera z jednym procesorem.

Pisanie programu komputerowego w taki sposób, aby można go było podzielić na osobne zadania do wykonania osobno, jest często trudniejsze niż pisanie jednego na raz, przy użyciu wykonywania liniowego. W przypadku programów komputerowych, które będą wykonywane sekwencyjnie, pierwsze zadanie zwykle określa informacje, które są integralną częścią drugiego zadania w sekwencji. Bez tej pierwszej informacji, która wynika z wykonania pierwszego zadania, wykonanie drugiego zadania może być bezcelowe. Podczas pisania programu w taki sposób, aby można go było podzielić na różne części, synchronizowanie rzeczy tak, aby różne części programu miały potrzebne informacje, gdy ich potrzebują i nie podejmowały decyzji na podstawie nieaktualnych informacji, może być wyjątkowym wyzwaniem. Ten problem jest zwykle związany z najczęstszymi typami błędów komputerowych, z którymi borykają się programy do obliczeń równoległych.

Główną zaletą obliczeń równoległych jest to, że programy mogą działać szybciej. Jeśli sprzęt komputerowy wykonujący program wykorzystujący przetwarzanie równoległe ma architekturę, taką jak więcej niż jedna jednostka centralna (CPU), przetwarzanie równoległe może być wydajną techniką. Analogicznie, jeśli jeden człowiek może przenosić jedno pudełko na raz, a procesor jest człowiekiem, program wykonujący się sekwencyjnie może być w stanie przenosić tylko jedno pudełko na raz. Podczas równoległego wykonywania ten sam program może być w stanie podzielić na dwa oddzielne zadania, a jeśli są dwa procesory, które mogą z tego skorzystać, noś oba pudełka w tym samym czasie. W ten sposób mężczyzna przenosi oba pudła i szybciej wykonuje swoje zadanie.