Hier sind einige Datenpunkte; Entscheide selbst, ob es sich um eine Revolution handelt.
Parallelisierte Hardware
Um 2005 starten Intel und AMD die Massenproduktion von 2-Kern-Desktop-x86-CPUs (Pentium D und Athlon 64) mit Taktraten um 3 GHz.
2006 erscheint PlayStation 3 mit dem Cell-Prozessor mit 8 + 1-Kernen bei 3,2 GHz.
Im Jahr 2006 wird die GeForce 8-Serie veröffentlicht. Es besteht aus einer großen Anzahl (~ 100) von allgemeinen "Stream-Prozessoren" im Gegensatz zu grafikspezifischen Einheiten. Um 2007 wird die CUDA 1.0-Spezifikation veröffentlicht, die einige allgemeine Berechnungen auf massiv paralleler NVidia-Hardware ermöglicht.
Seitdem haben sich die Tendenzen fortgesetzt.
Nehmen wir an, Intel und AMD bieten 2013 CPUs mit 4, 8 und 16 Kernen mit Taktraten, die etwas über lediglich 4 GHz liegen. Dual-Core- und Quad-Core-Designs sind für Geräte mit geringerem Stromverbrauch wie Laptops und Smartphones üblich.
All dies ist massenproduzierte Computerhardware für den täglichen Gebrauch.
Software
CUDA wird im Jahr 2007 und OpenCL im Jahr 2008 veröffentlicht und ermöglicht die Verwendung von massiv parallelen GPUs für allgemeine (nicht-grafische) Berechnungen. Das Modell wird populär; Viele Hosting-Unternehmen (z. B. Amazon) bieten GPUs für allgemeine Computeraufgaben an.
Go wird 2009 veröffentlicht und bietet sehr günstige Preemptive-Threads ("Goroutines"), mit denen sich hochkonkurrierende Algorithmen effizient ausdrücken lassen.
Das Akka-Toolkit wird 2009 für Java und Scala veröffentlicht und ermöglicht akteurbasierte Parallelität.
Erlang (eine sehr konkurrierende Sprache) sieht eine gewisse Zunahme der Nutzung.
Parallelität vs. Parallelität
Beachten Sie, dass für die Verwendung paralleler Hardware nicht unbedingt die gleichzeitige Verwendung von Software erforderlich ist, dh das Jonglieren mit Ausführungsthreads innerhalb einer Berechnung. Viele Probleme werden durch parallele , nicht interagierende Prozesse gelöst , wobei jeder Prozess ein traditionelles sequentielles Programm ist.
Bei der parallelen Verarbeitung werden möglicherweise traditionellere Sprachen und parallele Frameworks verwendet, z. B. Kartenreduzierung, MPC oder OpenMP. Bei solchen Frameworks unterscheidet sich das Vorhandensein mehrerer Kerne auf demselben CPU-Kristall konzeptionell nicht wesentlich davon, nur mehr CPUs im Cluster zu haben. Der Unterschied liegt hauptsächlich in der Geschwindigkeit.
Bisher kein kostenloses Mittagessen
Die CPU-Geschwindigkeit liegt im oberen Bereich noch bei rund 5 GHz. Mit besseren Technologien in Sicht, wie Graphen-Transistoren, könnten die Frequenzen in Zukunft wieder ansteigen, aber wahrscheinlich nicht sehr bald.