「30年間以上にわたってパラレル(超並列)コンピューティングを手がけてきた私が米Microsoftに来た目的は,パラレル・コンピューティングを,クライアント・サイドにまで広げることだ」--。そう語るのは,かつては米CrayのChief Scientistを,現在はMicrosoftのTechnical Fellowを務めるBurton Smith氏だ。「全コンピュータがパラレル・コンピューティングに向かう」と語るSmith氏に,その理由を聞いた。(聞き手は中田 敦=ITpro編集)



 Smith氏は1970年以来,一貫してパラレル・コンピューティングの研究を続けているパラレル・コンピューティング研究の第一人者だ。1987年には米Tera Computerを創業し,同社はその後,米Crayを買収するに至った(買収に伴いTera ComputerはCrayに社名を変更した)。その後,Microsoftに移るまで,CrayのChief Scientistを務めていた。

 まずはSmithさんがMicrosoftに移った理由を聞かせてください。

米Microsoft Technical Fellow Burton Smith氏
米Microsoft
Technical Fellow
Burton Smith氏

[画像のクリックで拡大表示]

 私は1979年にアカデミックな世界を離れて,パラレル・コンピューティングを事業化する道に進みました。しかし今から考えると,そう決断するのは「25年早かった」といえるでしょう。

 ご存じの通り1980年代は,コンピュータ・アーキテクチャを研究する私の友人の多くが,(パラレル・コンピューティングとは逆のアプローチである)命令レベルの並列性(ILP)の向上にまい進し,シングル・プロセサの性能を,数千倍にまで向上させてしまいました。

 プロセサを1個しか搭載しないマシンの性能が年々向上するのですから,(プロセサを複数搭載するマシンを前提とした)パラレル・コンピューティングには出る幕がありません。そのためパラレル・コンピューティングは,HPC(ハイ・パフォーマンス・コンピューティング)という非常にニッチな世界で,細々と始めざるを得ませんでした。

 しかし,時代は変わりました。シングル・プロセサの性能向上が頭打ちになった今,パラレル・コンピューティングがメインストリームになりました。私のいるべき場所として,Microsoftがパーフェクトな存在になったのです。

 それはどういうことですか?

 Microsoftがパラレル・コンピューティングに関して重視しているのは,サーバー分野ではなく,クライアント分野です。シングル・プロセサの性能向上が見込めない以上,携帯電話も,ラップトップ・コンピュータも,もちろんデスクトップ・コンピュータも,すべてのコンピュータがマルチコア,メニー・コアになります。

 Smith氏は,シングル・プロセサの性能向上が見込めない理由として,プロセサ技術が現在,「ILP Wall(命令レベルの並列性の壁)」「Power Wall(消費電力の壁)」「Memory Wall(メモリーの壁)」という,三つの壁に突き当たっているからだと語る。

 プロセサはかつて,トランジスタの数を増やし,命令レベルの並列性(ILP)を向上させることで,性能を向上させていた。しかし最近は,米Intelのプロセサを見ても,トランジスタは増えているが,1クロック当たりの処理性能は頭打ちになっている。ILPを向上させる手法,ベクトル命令やアウト・オブ・オーダー実行,分岐予測,投機的実行などの効果が,限定的だったためだ。これを「ILP Wall」と呼ぶ。

 一方で,プロセサの消費電力は限界に達しており,電圧を上げることで周波数を上げるという手法が通用しなくなっている。これを「Power Wall」と呼ぶ。また現在,プロセサに搭載するキャッシュ・メモリーの容量を増やしても,めざましい効果が出なくなっている。これを「Memory Wall」と呼ぶ。

 Smith氏は,ILP Wall,Power Wall,Memory Wallの三つが「われわれが60年間頼ってきた,フォン・ノイマン型のアプローチの限界」と語る。シングル・プロセサを前提にしたシリアル・プログラミングは,パラレル・プログラミングよりも簡単だが,「シリアル・プログラミングは,もはや遅いプログラミングの代名詞」(Smith氏)だという。だからこそSmith氏は,「パラレル・コンピューティングがメインストリームになる」と訴えている。

 パラレル・コンピューティングというと,HPCやサーバー分野のもの,という印象が強いと思います。それなのに,MicrosoftはHPCやサーバー分野ではなく,クライアント分野でのパラレル・コンピューティングの普及に力を入れているというのですか?

 理由は単純です。なぜならクライアント分野が,非常に大きいマーケットだからです。そして,クライアント・コンピュータも,従来のアプローチ(コンピュータの性能向上のシングル・プロセサの性能向上に依存するアプローチ)では,これ以上速くなりません。だから,クライアント分野に注力するのです。

 パラレル・コンピューティングのプラットフォームが,Windowsになる,と。

 OS(Windows)だけでパラレル・コンピューティングが実現できるわけではありません。プログラミング言語や開発ツール,Windows上のアプリケーションの充実も必要です。Microsoftは現在,(パラレル・コンピューティングに適した)関数型プログラミング言語である「F#」の開発を進めているほか,「C#」にも関数型プログラミング言語の要素を取り組もうとしています(LINQプロジェクト)。

 われわれが現在パソコンで利用しているプロセサのコアは,多くて2個ですが,これからコアはどんどん増えていきます。それに備えて,ソフトウエアの準備は欠かせません。

 Windowsはそもそも,パソコン用に作られたOSであり,パラレル・コンピューティングの対極にあると思います。

 私は,Windowsをパラレル・コンピューティングの基盤に変えられると思っています。そのためには,特にリソース管理の仕組みを変えていく必要があるでしょう。

 ゲーム機の世界ではすでに,Xbox 360が3個のプロセサ・コア,PLAYSTATION 3が9個のプロセサ・コアを搭載するなど,メニー・コア化が進んでいます。

 ゲームの世界ではすでに,パラレル・コンピューティングが到来していると言えます。それにXbox 360は,ただのゲーム・エンジンではありません。ホーム・メディア・エンジンであり,ストリーミング・メディア・エンジンでもあります。マルチメディア処理は,演算集約型であり,この分野で先行してコアが増えているのも当然です。

 またゲームに関しては,とても興味深い事実があります。現在,多くの人が,パソコン上でゲームをしています。こういったユーザーは,ゲームの処理が途切れることを好みません。パソコン上でゲームを途切れさせないようにするためには,OSがゲームのために適切にリソースを確保してやる必要があります。

 ほらここで,「リソース・アロケーション」という,パラレル・コンピューティングにとって不可欠な要素が出てきました。つまり,パソコンでゲームをするためにも,パラレル・コンピューティングが不可欠なのです。

 すべてのコンピューティングをパラレル・コンピューティングに移行するのは,大変なことのように思います。すべてのアプリケーションをサーバー側に置こうとする,米Googleや「Windows Live」のようなアプローチのほうが,パラレル・コンピューティングへの移行に向いているのではないでしょうか。

 あなたが言っているのは,「シン・クライアント」が良いか,「リッチ・クライアント」が良いか,という議論ですね。われわれは,リッチ・クライアントのほうが,パラレル・コンピューティングの恩恵を受けやすいというスタンスです。

 まず,リッチ・クライアントのほうが,人間とコンピュータのインタラクションを改善できます。例えば携帯電話機の性能が向上して,あなたが何を欲しているのかが理解できるようになれば,生活はより便利になるとは思いませんか?

 今のクライアント・コンピュータは,コンテクスト(文脈,物事の前後関係)を理解してくれません。Webを検索する際にも,クライアント・コンピュータが,あなたがなぜWebを検索しようとしているのか,どんな課題を抱えているのか,検索クエリーのコンテクストを理解して,その上で「セマンテック・アナリシス・クエリー(意味を分析したうえでのクエリー)」を検索エンジンに送り込んでくれたほうが,より良い結果が得られるはずです。

 あなたのコンピュータは現在,あなたが何かの作業を行っている時以外は,基本的にアイドル状態にあります。これは非常に無駄なことです。これからのコンピュータは,ユーザーの全体像を把握し,コンテクストを理解するために,ユーザーが何もしていない間は,ユーザーの行動を分析して予測していくようになるでしょう。

 Windows Vistaで「スーパー・フェッチ」という機能が搭載されましたが,これはユーザーの行動をコンピュータが理解しようという行為の第一歩です。スーパー・フェッチは,ベイジアン分析によってユーザーの行動を解析し,ユーザーが頻繁に使用するアプリケーションを,あらかじめメモリーに読み込んでおくという機能で,アプリケーションの起動を大幅に向上させます。こういった機能がさらに増えれば,コンピュータはより便利になるでしょう。

 もっとも,コンピュータがユーザーの行動を分析するようになると,ユーザーのプライバシーがコンピュータに膨大に記憶されるようになります。こういった個人情報は,ユーザー本人しか触れないクライアント・コンピュータに蓄積されるべきです。あなたはプライバシーを,サーバー(コンピュータ・クラウド)に保存したいと思いますか?

 ヒューマン・コンピュータ・インタラクションは,1980年代に語られた「第五世代コンピュータ」でも話題になった概念でした。ユーザーの行動を予測できるコンピュータが,将来のコンピュータの姿だと思います。

 Microsoftの創業者であるBill Gates氏は,2008年にも引退します。パラレル・コンピューティングへの移行という壮大なプロジェクトを推進するうえでは,カリスマ的な存在が必要になると思うのですが,Gates氏の引退後のMicrosoftに,それは可能なのでしょうか?

 私がMicrosoftに入社して気づいたのは,この会社には技術的な強みがあり,「恐れを知らないエンジニア」がたくさんいるということです。あなたは「カリスマが必要」と言いますが,Microsoftの中にはすでに,多くのカリスマがいます。

 また,パラレル・コンピューティングへの移行は,継続的な進歩です。われわれはリーダーシップを必要としていますが,リーダーに求められるのは「最終目標から目をそらさない」ことです。これからも毎年のように,小さな変化が現れ続けると思っています。