IDF
Intel Developer Forum 2008 Fall に参加してきました。 世間的にはNehalemとかAtomが目玉でしたが、ここでは Concurrency に絞って振り返ってみます。
2つの世界
並列で書く世界になるとプログラマは2つに分かれる:
- 下回りに並列化はまかせてロジックに集中する上流階級
- 並列プログラミングモデルで細かい並列記述をがしがし書いて、最高の性能を引き出そうとする低レイヤ野郎
高水準言語とアセンブラとの関係と相似ですね。 上流階級が7割を占めて、ゲームやグラフィックス、組み込みといった低レイヤのひとたちが3割くらいでしょうか。 上流階級はデータ並列のプログラミングモデルであり、低レイヤはタスク並列も使い倒す。
これからは並列プログラミングができないと、コアが増えてプロセッサが速くなっても恩恵を受けれませんよ! というアジテーション。 Intelのツールをいま使えば、将来コアが増えても自動的にちゃーんとスケールするので使ってよ、という分かりやすいストーリーですね。Intelは下回りのツールを提供するので、みなさんは上流階級をエンジョイしてくださいね、というスタンスで、それはどう聞いてもベストの道なんだけど果たしてそううまくいくかどうか。
並列プログラミングモデル
TBB (Threading Building Blocks) がいますぐ使えるツールとしてあり、研究中のプロジェクトとして Ct がある。 いずれも C/C++ をベースとしていて、関数型ライクに並列プログラムを書ける。
並列プログラミング、特にデータ並列には関数型というか高階関数で書ける言語が向いているそうな。Map Reduce なんかもそうですよね。
アプリケーション
今見えているアプリケーション例として、よりきれいなグラフィックスのレンダリングとか物理シミュレーションなどがあがっていました。 いかにも計算量が必要そうなもの。 でも、ふつうのユーザはそんな計算量を必要とするんだろうか。 ふつうのユーザのコンピューティング環境はモバイルに移行しているというこの時に。
モバイルでこそマルチコアは生きてきますよね。低消費電力で高性能になるはずなので。 そこでいかに高速で電力効率の良いプログラムを書くことができるかが大切になってくるのでは。
Larrabee
Larrabeeはフリーダムすぎてすごい。なんとも遊びがいがありそうです。 ぱっと見たかんじはCellっぽいんだけどプログラマが楽をできるような工夫がこらされていて涙が出る。
それぞれのx86コアではμOSのようなものが動いているんだけど、これも自分で書けるそうな。 オレオレ分散OSが1チップで動く時代ですよ。たのしい。
LarrabeeはCPUなの? GPUなの? という質問をしている人がいて、「Larrabeeは革命的なプロセッサなんだ!」と答えていたのが印象的だった。 Larrabeeやばい。
難しさ
並列プログラミングでむずかしいのは、非決定性 (実行するたびに動作が変わる) とそれにまつわるデバッグです。 プログラム中のある行にブレークポイントを張ってデバッガで捕まえたとしても、他のコアの実行は非決定的なので、再現させるのが難しい。 その他の問題 (スケーラビリティ、同期など) については解決してきたけれど、非決定性についてはまだ決め手がない。 ブレークスルーが求められています。
Continuation
カンファレンスというのは一回行っただけでは本当のところは分からない。 何度か連続していくことでトレンドが見えてくるものですね。
ひとことでまとめると、英語がんばろうということでした… ><
まとまってないメモは以下:
- Newer: Github Tシャツ共同購入しませんか
- Older: SIGGRAPH 2008
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.deadbeaf.org/2008/08/25/idf/trackback/
- Listed below are links to weblogs that reference
- IDF from mootoh.log





