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系プラットフォームへの移植が進む可能性が出てきたと言えそうだ。
関連リンク
関連記事
情報をお寄せください:
TechTargetジャパン
- 派生型でもっと便利にデータを扱う (2012/4/26)
基本型を組み合せて使える派生型を学びます。派生型には構造体、共用体、配列などがあります - 実例で学ぶRailsアプリのテスト方法 (2011/12/22)
具体的なWebアプリを例に簡単なテストを使ったリファクタリングについ
て解説する - Railsの人気テストフレームワーク6選! (2011/8/18)
今回からテストを使ったリファクタリングを解説する。まずはRailsで人
気のあるテストフレームワークをいくつか紹介する - ActiveRecordの更新系操作 (2011/6/27)
Railsのモデル層を担当するActiveRecordを使った登録、更新、削除
など、更新系の機能を中心に見ていきます
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
