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 マーケティング」新着記事

CMOはなぜ短命? なぜ軽視される? いま向き合うべき3つの厳しい現実
プロダクト分析ツールを提供するAmplitudeのCMOが、2025年のマーケティングリーダーに課...

トラフィック1300%増、生成AIがEコマースを変える
アドビは、2024年のホリデーシーズンのオンラインショッピングデータを公開した。

「ドメインリスト貸し」は何がマズい? サイトの評判の不正使用について解説
「サイトの評判の不正使用」について理解し、正しい対策が取れるにしましょう。