FutureInsight.info

AI、ビッグデータ、ライフサイエンス、テクノロジービッグプレイヤーの動向、これからの働き方などの「未来」に注目して考察するブログです。

次の10年を支えるプログラマ

Radium Software DevelopmentがConcurrency(同時並行性)をテーマに議論を展開しているが、語ろうとしていることはおそらくCELL特異的な話ではなく、より一般的な議論だろうと思う。

Pentium (x86) プロセッサが驚異的な成長を遂げている間,ソフトウェア技術者はタダ乗りの高速バスに乗っているような感じだった。 x86 プロセッサの最大の武器は強力な上位互換性だ。ただ放っておくだけで,ソフトウェアは年々速く動作するようになっていった。作り方を根本から変えることなく,次々に複雑な処理をこなせるようになっていった。あるいは,速く動くようになる分,余裕のある組み方も許されるようになってきた。

思えば,これまでの十数年間はソフトウェア技術者にとって最も幸せな時代だったのかもしれない。しかし,何事もそうであるように,幸せが長く続くことは無い。タダ乗りの時代はもう終わろうとしている。これからは作り方を変えなければ,ソフトウェアは速く動くようにならない。作り方を根本から変えなければ,複雑な処理をこなせるようにならない。ソフトウェア産業は, 1990 年代に OOP (オブジェクト指向プログラミング)を迎え入れたとき以上のパラダイムシフトを,これから迎えようとしているのかもしれない。 C++ の巨匠 Herb Sutter 氏は,技術者たちにそう警告を投げかけている。

という、問題提起がされ、マルチコア化についての言及、そのためのプログラミングの話へと展開している。

CELLに関する話題についてはLife is beautifulの「Cellの真価を引き出すソフトウェア実行環境を開発」がすばらしいレポートをあげているがCELLの具体的な話ではなく、一般的な話でも、今後並列化に関することはプログラミングの大きなテーマになってくると思う。現在のC++などの言語使用は明らかに脆弱で、同期性を確保するためには、boostなどを使用せざるをえない。そして、それでも相当難しい。各CPU独自のプログラミングが必要だ。
Javaはまだましだが、メモリモデルはしってのとおり、極めて弱い一貫性しかプログラミングに提供しない。

そんなわけで、次の10年を支えるエンジニアにとって、この話題ははずせないわけだ。プラグラマーにとって、オブジェクト指向に続く、次のパラダイムシフトは近い。