Co to jest przetwarzanie równoległe?
Obliczenia równoległe występują, gdy komputer wykonuje więcej niż jedno zadanie jednocześnie. Ta technika może pozwolić komputerom działać szybciej niż wykonywanie jednej rzeczy naraz, tak jak osoba z dwiema wolnymi rękami może przenosić więcej niż jedna osoba z jedną wolną ręką. Tradycyjnie programy komputerowe są projektowane w taki sposób, że niekoniecznie pozwalają one na przetwarzanie równoległe, ale zamiast tego muszą być wykonywane krok po kroku. Aby program był obliczany w ten sposób, musi zostać zaprojektowany w taki sposób, aby można go było podzielić na mniejsze zadania, które można wykonać indywidualnie. Jako przykład tego, jak obliczenia równoległe odnoszą się do przeciętnego człowieka, wiele komputerów osobistych ma wiele rdzeni przetwarzających, które umożliwiają im przetwarzanie wielu zadań jednocześnie, zamiast jednego zadania po drugim, jak na komputerze z jednym procesorem.
Pisanie programu komputerowego, aby można go było podzielić na osobne zadania do wykonania osobno, jest często trudniejsze niż pisanie pojedynczo, 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 wynikającej z wykonania pierwszego zadania drugie zadanie może być bezcelowe. Pisząc program, aby można go było podzielić na różne części, mierzenie czasu tak, aby różne części programu zawierały informacje, których potrzebują, gdy są potrzebne i nie podejmują decyzji w oparciu o nieaktualne informacje, może być wyjątkowym wyzwaniem. Problem ten zwykle wiąże się z najczęstszymi typami błędów komputerowych, z którymi spotykają się równoległe programy komputerowe.
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 obliczenia równoległe ma architekturę, taką jak więcej niż jedna centralna jednostka przetwarzająca (CPU), obliczenia równoległe mogą być wydajną techniką. Analogicznie, jeśli jeden człowiek może przenosić jedno pudełko na raz, a procesor to człowiek, program wykonujący sekwencyjnie może być w stanie przenosić tylko jedno pudełko na raz. Podczas wykonywania równoległego ten sam program może być w stanie podzielić się na dwa osobne zadania, a jeśli są dwa procesory, aby z niego skorzystać, należy przenosić oba urządzenia jednocześnie. W ten sposób mężczyzna przenosi oba pudełka i szybciej wykonuje swoje zadanie.