マルチコア化の未来予測
まとめ
シングルコア性能は頭打ちで将来はもう劇的に伸びることはない
マルチコアプログラミングパラダイムへのシフトは半世紀前から予測されていた
いくつかの要素が絡んでアプリレイヤでのシングルコアプログラミングパラダイムは延命している
インフラ寄り分野ではマルチコアプログラミングパラダイムが必須になりつつある
PCを含み、どんどんコア数は増えていく傾向にある
マルチコアを生かす実装の要求はPCにも求められるようになる
かつてシングルコアプログラミングで済ますのが現実解になってしまうほどマルチコアプログラミングには難解さがあった
将来はコア数を生かしたソフトウェア実装の需要がどんどん伸びる
並列度を高く保てば環境投資でソフトウェア性能が向上するフリーランチが再来する
並列度を高く保つにはストリームプログラミングやActor、CSP、アトミックアクセスを活用しよう
言語埋め込みのスレッドシステムはとても学びやすく、ライブラリの分断が発生しにくい
これまでは特定OSでパワーのあるユーザーだけがマルチコアスケール実装を書いていた
Goは初心者でもマルチコアスケール実装が書きやすく、同じコードが主要なOSの多くでそのまま動き、メニーコア環境に適応して動作する
GoのgoroutineはM:N型のスレッドシステムでかつブロッキングに対する弱点を解決している
こういった特性をもつ言語処理系はレアで、Goほどシンプルに見える処理系はおそらく他にはない
Goはマルチコアスケールを意識し、容易に書けるという点でユニーク
よくGoは突出した言語機能がないと言われるがここだけは突出しているように思う
ソース