Cafe de Kerm ~毒味ブログ~

物言いにも、珈琲にも、もれなく毒が混入している可能性が無いこともないです。

シングルからマルチへ 変わるプログラミング環境

2007-04-16 22:32:05 | Technology
 今、PC市場のトレンドは、シングルコアからデュアル、クアッドと完全にマルチコアに移ってしまいました。Intel、AMD共にシングルコアのCPUをリリースしてはいますけれど、性能的にも出荷量的にも、明らかにローエンド市場向けの製品になってしまった感があります。

 CPUに伴って、周りのアーキテクチャも変わりました。それまでの爆音、爆熱まっしぐらのプラットフォームはエンスージアスト向けになりを潜め、それよりもコンパクト、省電力、静音設計にシフトが進んでいます。

 そしてもう一つ。
 CPUのマルチコア化による自然な流れとして、プログラミングもマルチスレッドへの道を歩み始めました。
 しかしながら、プロフェッショナル用途のビジネスプログラムの世界では、割と早い時期からマルチスレッドの道は開拓されてきました。Windowsだって2000の時点でマルチプロセッサにすでに対応していましたし、フォトショップなどの業務用アプリにしてもも井フィルタ処理などに積極的に利用されてきました。

 そもそも、莫大な件数を扱うデータベースとか、広大なピクセルをレタッチするグラフィックエディタ、超高レートで行うビデオ編集など、おおよそそんな用途でもなければ、現在のCPUスピードなら、マルチコアでなくてもビジネスアプリは十分過ぎる速度で走ります。

 それよりも、岐路に立たされているのはゲーム屋の方です。

 今現在でも、マルチコアより高クロックのシングルコアで早く動くゲームはたくさんあります。PS3の開発もそうですけれど、マルチコアを効率よく使うプログラミングに、ゲーム屋さんは慣れていないようなのです。

どうなるマルチコア時代のPCゲーム開発--インテルが開発者向けツールをリリース CNET

ゲーム開発者はソフトウェアの開発方法について、根底からの見直しを迫られている。こうした状況を踏まえ、Intelは米国時間4月10日、開発者のマルチコア移行を支援する一連のソフトウェア開発ツールをリリースした。

 今までシングルスレッド一辺倒で書かれてきたゲームプログラミングのノウハウを捨て、マルチスレッドに最適化する・・・なかなか難しいことだけに、今ひとつ進んでいないゲーム業界の対応に対し、プラットフォーム提供側のインテルが開発支援ミドルウェアの提供を始めたと言うわけです。
 それと同時に、インテル以外のメーカーも、

開発者がAPIを利用してアプリケーションを作成すれば、複数へのコアへの作業の割り振りをプラットフォーム側が考えてくれる

という環境を発表するなど、着々とマルチコアへの対応の敷居を下げていきます。個人的には、後者の方がスマートだと思うんですケドね・・・

 これらの試みは、PS3のCELLの使い方が今ひとつなゲームメーカーのために、Sonyがミドルウェアの提供を行ったのと全く同じ理屈です。しかしながら、影響範囲は桁違いです。Sonyのは、あくまでPS3とゲーム屋のみの、言わば閉じた世界への対応です。
 しかし、PC向けのミドルウェア提供は、ゲームだけでなくビジネスアプリケーション、研究向けソフトウェア群も含まれますし、職業プログラマだけでなく、アマチュアにまで派生する巨大な動きなのですから。

 結果として、プラットフォームメーカー、つまりマイクロソフトやボーランドなどが、インテルの「プログラマがマルチスレッドにネイティブ対応」を選択するか、「開発ツールがマルチスレッドに自動で最適化」かのどちらを選ぶかで、今後の大勢が決まると思います。

 まあ、ウェブアプリとかの兼ね合いもあって、多分後者だろうとは思いますけれど、どちらにしろ、プログラミングはここ30年の歴史において、最も大きな岐路の一つに立っていると考えて間違いなさそうです。