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

“AI美女”を広告に起用しない ユニリーバ「Dove」はなぜそう決めたのか
Unilever傘下の美容ケアブランド「Dove」は、「Real Beauty」の20周年を機に、生成AIツー...

有料動画サービス 34歳以下では過半数が利用経験、4割は1日1回以上利用
「ニールセン・ビデオコンテンツ アンド アド レポート 2024」を基に、テレビ画面での動...

2024年のGW予算は横ばい 賃上げよりも物価高と円安の影響が勝る?――インテージ調査
インテージが全国の15歳から79歳の男女を対象に実施したゴールデンウイークに関する調査...