ここにいくつかのデータポイントがあります。それが革命としてカウントされる場合、自分で決める。
並列化されたハードウェア
2005年頃、IntelとAMDはともに、クロックスピードが約3 GHzの2コアデスクトップx86 CPU(Pentium DとAthlon 64)の量産を開始しました。
2006年には、3.2 GHzで8 + 1コアのCellプロセッサを搭載したPlayStation 3がリリースされました。
2006年、GeForce 8シリーズがリリースされました。グラフィックス固有のユニットとは対照的に、多数(〜100)の汎用「ストリームプロセッサ」で構成されます。2007年頃、CUDA 1.0仕様がリリースされ、超並列NVidiaハードウェア上で汎用計算を実行できるようになりました。
それ以来、傾向は続きました。
現在、2013年には、IntelとAMDの両方が4、8、および16コアのCPUを提供し、クロック速度はわずか4 GHzをわずかに上回ります。デュアルコアおよびクアッドコアの設計は、ラップトップやスマートフォンなどの低電力デバイスで一般的です。
これらはすべて、大量生産された消費者レベルの日常的なコンピューターハードウェアです。
ソフトウェア
CUDAは2007年にリリースされ、その後2008年にOpenCLがリリースされ、一般的な(グラフィカルではない)計算で超並列GPUを使用できるようになりました。モデルが人気になります。多くのホスティング会社(Amazonなど)は、一般的なコンピューティングタスク用のGPUを提供しています。
行くは2009年にリリースされ、非常に安価なプリエンプティブスレッド(「ゴルーチン」)を備えており、高度な並行アルゴリズムを効率的に表現できます。
Akkaツールキットは2009年にJavaとScala向けにリリースされ、アクターベースの同時実行を可能にします。
Erlang(高度な並行言語)では、使用量がいくらか増加します。
並行性と並列性
並列ハードウェアを利用するために、必ずしもソフトウェアの同時実行性、つまり、計算内の実行スレッドとのジャグリングが必要ではないことに注意してください。多くの問題は、各プロセスが従来のシーケンシャルプログラムである、並列の相互作用しないプロセスによって解決されます。
並列処理では、map-reduce、MPC、OpenMPなどの従来の言語と並列フレームワークを利用できます。このようなフレームワークの場合、同じCPUクリスタル上に複数のコアが存在することは、クラスター内にCPUを追加することと概念的にそれほど変わりません。違いは主に速度です。
今のところ無料のランチはありません
CPU速度は、ハイエンドで5 GHz前後のままです。グラフェントランジスタのような優れた技術が登場すれば、将来的には周波数が再び上昇する可能性がありますが、おそらくすぐにではないでしょう。