夜行録 - 酔歩.net

日暮れて道遠し さらに夜道を行く もって夜行録と名付く

snow leopard

は?やく来い来いすのれぱ?、な状態だったんだが(予定じゃ28日)、今頃になってこんな新機能があることに気がついた。

Grand Central Dispatch
Grand Central Dispatch新登場。

この差し迫ったニーズに対応するのが、Mac OS X Snow LeopardのGrand Central Dispatch (GCD) です。GCDは、ディベロッパが、これまでよりもずっと簡単に、マルチコアシステムのパワーを余すところなく引き出せるようにする、はじめてのテクノロジーです。GCDでは、スレッドは、個々のアプリケーションではなく、オペレーティングシステムによって処理されます。 GCD対応のプログラムは、利用できるすべてのコアに作業を自動的に分散するため、デュアルコアのMac miniから8コアのMac Proまで、どのMacでも最善のパフォーマンスを発揮できます。ディベロッパがアプリケーションにGCDを使うようになれば、パフォーマンスの飛躍的な向上を実感する機会も増えることでしょう。

磨きに磨きをかけたエンジン。

Grand Central Dispatchは、すべての処理を効率的に行います。コンピュータのプロセッサの数を考慮して、アプリケーションの作業負荷をリアルタイムで調整します。また、行っている作業に必要なスレッドのみを使うことで、アプリケーションの効率を高めます。たとえば、 GCDがないと、アプリケーションが最大時に20のスレッドを必要とする場合、20のスレッドがセットアップされ、何もしていないときでもリソースが消費される可能性があります。一方、 GCDは、アプリケーションが使っていないときはリソースを解放し、システム全体がより機敏に対応するようにします。Macのすべてのアプリケーションが GCDを使うようになったときの効率性とパフォーマンスの高さは、今とは比べられないものになるでしょう。

コアへ内蔵。

Grand Central DispatchはMac OS X Snow Leopardに完全に一体化されているので、すべてのアプリケーションがマルチコアプロセッサをよりいっそう、簡単に活用できます。さらに、Mac全体が複数のタスクを同時に、より効率的に処理できるので、全体的なパフォーマンスが高まります。

強力な開発ツールにも。

すべてのMacに用意されているXcodeツールを使って、Grand Central Dispatchに対応したプログラムを作成する場合、Xcodeデバッガ、 Instrumentsパフォーマンス解析ツールを使って、ランタイムでGCDを確認できます。GCD作業キューのチェックもあっという間に、実行中のコードの特定のブロックまで細かく行えます。GCDは利用できるすべてのコアにタスクを効率的に割り当てるため、ディベロッパはアプリケーションを隅々まで把握できます。

………な、なんだ?これ
wikipediaによれば新たに導入された並行計算プログラミング技術。C言語、C++言語およびObjective-C言語に特殊なブロック記述を拡張し、ブロックのキューイングによる並行計算を行う。ブロックはシステムで管理されたスレッドで実行されるため、アプリケーションコードによるスレッド管理を軽減できるほか、諸々の最適化が自動的に施される。だそうで、ぱっと見 OpenMP っぽいが…スレッドキューがあるのか?global のキューで依存解きながら廻したり動的に解決する?
どうも、マルチスレッド化したアプリ(Mail.appとか)の効率追求のための様でもあるけど、これを並列計算に使っちゃまずいのか?

cuda もとい OpenCL の他にもこんなの(ほぼ只で)入れてくるあたりが怖い。気がつくと、学術計算みんな OSX に置き換わってたりして。

一番よく纏めてくれてるのはこちら:Grand Central Dispatch at mootoh.logl

マルチスレッド利用技術としては、ほかに:OpenMP, OpenCL, Intel TBB などがある。どれをどう使おうか………。

2009年08月23日 (Sun) - 02:33:47 - その他雑記 - 4954x - permalink
Karma points: 4. Do you like this article? [yes/no]