Oto kilka punktów danych; sam zdecyduj, czy liczy się to jako rewolucja.
Sprzęt równoległy
Około 2005 r. Zarówno Intel, jak i AMD zaczynają masowo produkować 2-rdzeniowe procesory do komputerów stacjonarnych x86 (Pentium D i Athlon 64), z zegarem o częstotliwości około 3 GHz.
W 2006 roku wypuszczono PlayStation 3 z procesorem Cell z rdzeniami 8 + 1 przy 3,2 GHz.
W 2006 roku ukazała się seria GeForce 8. Składa się z dużej liczby (~ 100) „procesorów strumieniowych” ogólnego zastosowania, w przeciwieństwie do jednostek specyficznych dla grafiki. Około 2007 r. Wydana została specyfikacja CUDA 1.0, umożliwiająca wykonywanie niektórych obliczeń ogólnego zastosowania na sprzężeniu masowo równoległym NVidia.
Od tego czasu tendencje trwały.
Powiedzmy, że teraz w 2013 r. Zarówno Intel, jak i AMD oferują 4, 8 i 16-rdzeniowe procesory o taktowaniu nieco powyżej zaledwie 4 GHz. Dwurdzeniowe i czterordzeniowe konstrukcje są wspólne dla urządzeń o mniejszej mocy, takich jak laptopy i smartfony.
Wszystko to jest masowo produkowanym, codziennym sprzętem komputerowym klasy konsumenckiej.
Oprogramowanie
CUDA został wydany w 2007 r., A następnie OpenCL w 2008 r., Co pozwala na stosowanie masowo równoległych układów GPU w obliczeniach ogólnych (nie graficznych). Model staje się popularny; wiele firm hostingowych (np. Amazon) oferuje procesory graficzne do ogólnych zadań obliczeniowych.
Go został wydany w 2009 roku, zawiera bardzo tanie wątki zapobiegawcze („goroutines”) i pozwala na wydajne wyrażanie wysoce współbieżnych algorytmów.
Zestaw narzędzi Akka został wydany dla Javy i Scali w 2009 roku, umożliwiając współbieżność aktorów.
Erlang (bardzo współbieżny język) odnotowuje pewien wzrost użycia.
Współbieżność a równoległość
Zauważ, że aby korzystać z równoległego sprzętu, niekoniecznie potrzebna jest współbieżność oprogramowania , to znaczy żonglowanie wątkami wykonania w obliczeniach. Wiele problemów jest rozwiązywanych przez równoległe , nie wchodzące w interakcje procesy, w których każdy proces jest tradycyjnym programem sekwencyjnym.
Przetwarzanie równoległe może wykorzystywać bardziej tradycyjne języki i struktury równoległe, takie jak redukcja map lub MPC lub OpenMP. W przypadku takich struktur obecność wielu rdzeni na tym samym krysztale procesora nie różni się koncepcyjnie od posiadania większej liczby procesorów w klastrze; różnica polega głównie na prędkości.
Do tej pory brak darmowego lunchu
Najwyższe prędkości wciąż utrzymują się na poziomie około 5 GHz. Przy widocznych lepszych technologiach, takich jak tranzystory grafenowe, częstotliwości mogą ponownie wzrosnąć w przyszłości, ale nie bardzo szybko.