Leopardの秘密に迫っていこう。Xを加速する「GCD」「OpenCL」という新技術ハードの性能を引き出すためにパソコンの性能は、OSやアプリケーションを64bit対応にしたからといって、劇的に向上するわけではない。性能アップのためには、クロックに代わって増えているCPUコアを上手に使うアプリケーションの並列化が鍵となる。プログラムの並列化は非常に難しい。プログラムの90%が並列化可能になっても、わずか10%が並列化できていないだけで、100%並列実行可能なプログラムに比べて、コアを増やしたときの性能向上は半分に落ちてしまう(アムダールの法則という。Wikipedia)。マルチスレッドのサポートがあるだけでは駄目で、より高レベルな並列化支援の枠組みが必要だ。そこで、アップルは並列化、高速化のためのふたつの枠組みを提供する。Dispatch」(GCD)、そしてもう一つが「OpenCL」だ。Leopardのポイントだ並列化をOS側で支援する「GCD」GCDは開発者への負担を抑えつつ、OS側で並列化を促進するための枠組みを提供するというもの。GCDは言語仕様に手を入れるなど、大幅な改善で並列化を促進する一連の仕組みだ。XのシステムレベルのAPIでも積極的に使われていることがうたわれているこれは、ただマルチスレッドに対応したフレームワークを提供するという意味ではない。Xの開発環境「Cocoa」でもある程度は実現されているし、かつての「BeOS」ですらアプリケーションフレームワークはマルチスレッド対応であった。ライブラリやフレームワークがマルチスレッドになってアプリケーションの一部が並列化可能になっても、先のアムダールの法則が指し示すように、それだけでは性能が上がらない。GCDではもっと抜本的な対策が取られている。GCDではマルチコアを活かした処理を実行するエンジン部分を土台として整えて、オブジェクト志向のフレームワークとしてプログラマに提供する。これは一部の特別なアプリケーション向けという意味ではなく、システム全体のAPIとして用意されている。GCDはどのアプリケーションでも利用可能だ。GCDの利用やGCDを使ったアプリケーションへの移行を支援するようなツールも展開するようだ。プログラミング言語を拡張するいちばんのポイントは、さらに「プログラミング言語に対してGCDを支援するための拡張を施す」と言う点だ。これまでの並列化プログラミングは「いくつスレッドを作って」「それをどう動かして」というレベルから細かく開発者が面倒を見なければらなかった。一方で、GCDでは「ここら辺が並列化可能っぽい」「その中でもここは並列化しないで逐次で実行して」と要所を指定していくぐらいの手間で、あとはエンジンが自動的にスレッドを用意して、各コアに処理を分散して実行させるところまでをサポートしてくれるようだ。Handling、SEHと略される)がある。いったプログラミング言語に独自の拡張を施し、システムと協調したエラー処理を明快に記述することができるようになるというもの。3.1や95、98に比べてより高い安定性を実現した。並列化のために言語を拡張した例としては、インテルの推進する「OpenMP」がある。OpenMPがどちらかというと科学技術計算のような高度な計算を分散させるのに対し、GCDは一般プログラミング向け、例えば「Mail」や「Safari」のようなアプリケーションの並列化を支援するような味付けがされているのだろう。Pro、9.7インチモデルが新登場。iMac、究極のデスクトップ体験を。小さなボディの大きな一歩。薄く、軽く、パワフル。スマホお気に入り一覧マイページ。