2009-07-09

Snow Leopard の GCD

Mac OS X の次期バージョン Snow Leopard には、Grand Central Dispatch というのがあるらしいです。これは OS なのか、フレームワークというかミドルウェアなのか微妙な感じがしないでもないですが、まあ、そこはよしとして。



概要を読んでみると、マルチコアCPU用の並列コードを書きやすく/並列化しやすくするテクノロジーっぽい。



Block というコンセプトがあって、これがひとつのコードのかたまりになる。資料をそのまま使うと、x = ^{ printf("hello world\n"); }  みたいに定義するそうで。で、後で、x( ); でBlock を実行するというか、呼び出すというか。



Block は、GCD が持っている Queue に突っ込まれて、あとは GCD がコアに振り分けて実行してくれるらしい。これで動的に並列化する部分をそれなりに並列化できる。



Block を Clump、Queue を RunQueue に置き換えると、どっかで聞いた事のある実装と似ているなぁと思った次第です。