Mac OS X以外のプラットフォーム広がる可能性も

Snow Leopardの並列処理フレームワーク「GCD」がOSSに

2009/09/14

 米アップルは9月10日、最新バージョンのMac OS X(Snow Leopard)に搭載されるマルチスレッドプログラミング用フレームワーク「Grand Central Dispatch」(GCD)をApacheライセンス2.0の下、オープンソースで公開した。オープンソース版は「libdispatch」と名付けられたライブラリの形で公開されており、LinuxなどほかのUnix系OSへの移植が進むと期待できる。GCDをサポートするには、C言語への独自拡張である以下のようなクロージャ風のブロック構文に対応したコンパイラが必要なほか、OS側の最適化も必要となる。

my_block = ^(void){ printf("hello world\n"); };

 Mac OS X側に含まれるGCD向け最適化のコードは、「xnuプロジェクト」で見ることができる。

 マルチコア化が進むに従ってマルチスレッドプログラミングの重要性は増しているが、C/C++を使ったマルチスレッドプログラミングは標準では低水準のAPIしかなく、スレッドプールを用いたオーバーヘッドの小さな処理の実装はプログラマに任されいる。GCDでは、こうした処理を抽象化して最適化している。プログラマは、実行タスクとしてブロックや関数をキューに追加していくだけでよく、GCDが1つずつ取り出して処理を行う。キューはあらかじめシステムに数種類用意されているほか、ユーザー定義も可能という。

 通常のスレッドプログラミングでは、スレッドを生成して、何かの処理を行うまでに数百インストラクションの実行が必要だが、アップルの説明(PDF)によれば、GCDではキューへのタスク追加が15インストラクションで済むという。

 GCDがMac OS Xでだけ使えるフレームワークであれば、利用の広がりは期待できなかったが、オープンソースとなることで、ほかのUNIX系プラットフォームへの移植が進む可能性が出てきたと言えそうだ。

関連リンク

(@IT 西村賢)

情報をお寄せください:

Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

注目のテーマ

ソリューションFLASH

「ITmedia マーケティング」新着記事

イーロン・マスク氏がユーザーに問いかけた「Vine復活」は良いアイデアか?
イーロン・マスク氏は自身のXアカウントで、ショート動画サービス「Vine」を復活させるべ...

ドコモとサイバーエージェントの共同出資会社がCookie非依存のターゲティング広告配信手法を開発
Prism Partnerは、NTTドコモが提供するファーストパーティデータの活用により、ドコモオ...

「インクルーシブマーケティング」実践のポイントは? ネオマーケティングが支援サービスを提供
ネオマーケティングは、インクルーシブマーケティングの実践に向けたサービスを開始した...