Snow Leopardの深層・その3
GPUをフル活用する、Snow Leopardの「OpenCL」
2009年09月04日 19時00分更新
コラム:マルチコア化へのもう一つの回答「仮想化」
Mac OS Xの高速化について、GCDを補足する意味で「仮想化」についても語っておきたい。仮想化は今、IT業界のトレンドなのだが、アップルはどちらかといえば消極的だ。その理由はなぜか?
物理的なサーバーを「仮想化」でまとめる
マルチコアCPUでパフォーマンスを出せるソフトウェアの開発は難しい。
世界最大の開発ソフトウェア(Visual Studio)のベンダーでもあるマイクロソフトでも、主力サーバー製品の一つである「Exchange Server」は4から8プロセッサーで最大パフォーマンスとなる(サチュレーションを起こす)とアナウンスしている(関連リンク)。つまり、ExchangeのためにQuad CoreのCPUを2基以上備えたサーバーを用意しても無駄ということだ。
ひとつのOS、ひとつのサービス、ひとつのシステムをマルチプロセッサーで分散/実行しようとしても、なかなか性能が上がらない──。
そこで生まれた考え方が、「複数まとめてしまえばいい」といううもの。そもそも2台のサーバーで提供していた2つのサービスならば、衝突することなく並列に実行できるだろう。例え、若干のオーバーヘッドが出たとしても、有り余ったプロセッサーのコアを有効利用できる。
具体的な手段はサーバーの「仮想化」だ。
IntelやAMDといったCPUベンダー、IBMやHP、富士通といったサーバベンダーの多くは、オープンソースソフト「Xen」の開発に手を貸したり、仮想化ソフトウェアのトップベンダーであるVMwareに出資するなど、仮想化ソフトウェアの開発や普及に支援をしたり、仮想化ソフトウェアのベンダーと協業して製品をリリースするなどしている。ハードウェアベンダーのこうした動きは、マルチプロセッサーを搭載した、より高性能なサーバー製品を世に送り出すためにほかならない。
今やローエンドのタワー型サーバーや、下手をするとご家庭向けのPCですら、ひと昔前なら数百万はしたハイエンドサーバーと同等、あるいはそれ以上のパフォーマンスを持っている。それ以上のサーバーを世に広めるためには、そのパフォーマンスを必要とするサービスが必要だ。
今まではハードウェアで複数台持っていたサーバーを仮想化で集約して、サーバーの数を減らす。そうすることで、データセンターの面積も減らせるし、消費電力や排熱量も下がるので電気代/冷房代などのコストを抑えられるし、エコロジーにも貢献できる。
このシナリオと、有り余っているマルチコアは見事に合致するため、仮想化が注目を集めているのだ。かつてのバーチャルリアリティのように、プロセッサパワーを押し上げる理由だけに終わった技術に比べれば、はるかに現実的だろう。
なぜアップルは仮想化に消極的なのか?
しかし、仮想化によるマルチコアプロセッサーの有効利用は、「サービスの並列化が難しいため、基盤環境(インフラストラクチャー)を並列化してみた」という、ソフトウェアエンジニアから見ればある種の「敗北」ではないだろうか?
アムダールの法則に果敢に挑戦をするアップルが、一方で現在の仮想化技術に消極的であることは、無関係ではないように思えてならない。
もちろん、彼らは決して仮想化を知らないわけではない。旧MacOSからMac OS Xへの移行時には「Classic」という名の「仮想Macintosh」(TruBlueEnvironment)を用意して、Mac OS 9を実行していた。これはマイクロソフトが Windows 7で実装したXP modeと同じだ。Intel CPUへの移行時も「QuickTransit」というエミュレーション技術を取り入れて、「Rosetta」と言う名前で搭載している。
彼らは仮想化をよく知っている。その上で仮想化に対して消極的なのだ。おそらく、彼らにとって仮想化とは「過去と今をつなぐ橋」でしかない。そして彼らが見ているのは「未来」であり、ほかのベンダーと異なり過去ではない。
未来を指向しGCDでマルチコアを極限まで使いこなそうとするアップルと、「Hyper-V」「XP mode」といった仮想化環境を売り文句に、過去と同じである(高い互換性をうたう)マイクロソフトやその他のベンダーと、そのどちらがソフトウェアエンジニアリングとしてあるべき姿なのか。どちらが「カッコいい」のだろうか?
これまでと同じことをするのではない。例えば、iPhotoの前にあれだけスムーズに写真を並べて見せたソフトウェアはあったであろうか?
Mac OS Xに含まれるグラフィックエンジン「Core Image」が iPhotoにアレだけスムーズな画像表示を実現させたように、数多のコアをカッコよく使いこなし、あり得ないような処理を高速でこなし、さも当たり前のように夢を提示するソフトウェアが、GCDの向こうに待ち構えているような気がしてならない。
そしてGCDという手段を与えられて、そのようなソフトを作るチャンスに恵まれたMacの開発者はうらやましくてならない。

この連載の記事
-
第8回
iPhone
Macのバックアップ、Time Machineで始めよう! -
第7回
iPhone
もふもふしたい! Snow Leopardの赤ちゃんを激写 -
第6回
iPhone
18年越しの大改修! Snow LeopardのQuickTime X -
第4回
iPhone
マルチコア時代の新機軸! Snow LeopardのGCD -
第3回
iPhone
やっぱりスゴい! Snow Leopardの「64bit対応」 -
第2回
iPhone
一挙30連発! 画像で見るSnow Leopard新機能 -
第1回
iPhone
Mac OS X「Snow Leopard」インストール完璧ガイド -
第-1回
iPhone/Mac
もっと知りたい! Snow Leopard - この連載の一覧へ