「マルチコアチップはPCソフトウェアデザインに変更を迫る」――MS幹部が指摘

Fall Processor ForumにおいてMicrosoft幹部は、いまだに多くのソフトウェア開発者、とくにクライアントアプリケーションの開発者はマルチコアに対する準備が整っていないと指摘した。

» 2005年10月27日 16時47分 公開
[IDG Japan]
IDG

 最近では、マルチコアプロセッサがすっかりメインストリームになった感がある(関連記事1関連記事2)。カリフォルニア州サンノゼで開催されたFall Processor Forumの初日には、メーカー各社が5種類の新しいマルチコアデザインを披露した。しかしMicrosoftの幹部によると、多くのソフトウェア開発者が、この時代に対応する準備が整っていないようだ。

 Microsoftのソフトウェアアーキテクト、ハーブ・サッター氏は10月26日、In-Stat/MDR主催のFall Processor Forumのオープニングスピーチで、ハードウェア業界関係者を中心とする聴衆に向かって、「わたしはソフトウェアの世界からやってきた。われわれは話し合う必要がある」と語りかけた。

 同氏によれば、ソフトウェア開発コミュニティーは、高速チップの熱問題に対処するために、プロセッサメーカーがマルチコアデザインに移行せざるを得なかった状況を理解しているが、それがソフトウェア業界にどれだけの苦労を強いているかをハードウェア設計者たちが理解しているか疑問に感じているという。

 「無料のランチはもうなくなった」とサッター氏は語った。これまで長い間、IntelやAdvanced Micro DevicesのPC用プロセッサが高速化するのに伴い、PCソフトウェアの性能も向上してきた。ハードウェア技術者がプロセッサ性能を改善する手法を考え出す一方で、開発者は既存のソフトウェアプログラムを少しばかり修正するだけで、その性能を向上することができたという。

 「しかしマルチコアデザインは、並列処理技術への対応をクライアントソフトウェアの世界に強いている」とサッター氏は話す。並列処理とは、単一のタスクを複数の部分に分割し、これらを別々に処理して後で再構成する技術である。

 サッター氏によると、サーバ向けのアプリケーションを作成してきた開発者はすでに、このハードルをクリアしているという。サーバ市場では数年前から、マルチコアプロセッサやマルチプロセッサシステムが一般的であったからだ。こういったサーバアプリケーションの多くは、これらのシステムの並列処理機能を利用する複数のソフトウェアスレッドを備えたデザインとなっている。

 しかしクライアントアプリケーションは長い間、シングルスレッドの世界に閉じ込められてきたという。この世界では「逐次的アプリケーション」(サッター氏)が作られてきた。

 「このため、ソフトウェア開発者は新たなソフトウェア開発手法を編み出す必要がある」とサッター氏は話す。オブジェクト指向プログラミングの登場がアセンブリ言語を一層複雑にしたのと同じように、並列処理のためのプログラミングは新たなレベルの抽象化を要求する」とサッター氏は語る。

 Microsoftでは、「Concur Project」を通じてこの問題に取り組んでいる。これはサッター氏が統括する社内開発グループが進めているプロジェクトで、これらの抽象化を定義するとともに、それをハードウェアに結び付けて「無料のランチを再び可能にする」ことを目指している。しかし同氏によると、すべてのソフトウェア開発者は、今後、並列処理を念頭にPCソフトウェアを置いて開発しなければならないことを認識する必要があるという。

 「チップ設計者は製品を開発する際に、ソフトウェア開発者のことも考えてもらえば助かる」とサッター氏は話す。

 「ハードウェアはまず、プログラム可能性にフォーカスすべきであり、速度はその次だ。OS専門家やコンパイラ専門家、エンドアプリケーション開発者が何にでも対応できると考えてもらっては困る」(同氏)

Copyright(C) IDG Japan, Inc. All Rights Reserved.

注目のテーマ