お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

今アーキテクチャが面白い

2008/07/21 08:21
  • このエントリーをはてなブックマークに追加

先週末は、先端ITスペシャリスト育成プログラムという大学院のコースの、プロジェクト科目の発表会に行きました。 このプログラムは、慶應・早稲田・中央大学の情報系修士の学生さんが、実戦的ソフトウェア開発を学ぶ場として、企業の立場から協力させていただいているものです。それぞれ2、3名のチームでプロジェクトを実施するものですが、なかなか目の付け所が良く、感心するところがたくさんありました。最近、大学では情報関係学科の人気低下が問題視されるようになってきて気をもむところですが、どうして、まだまだ日本の学生さんはやるものだ、と気を強くしました。

今週も先週と同じ、Communications of the ACMの記事から面白かったものをご紹介しましょう。それは、"The Revolution Inside The Box"というタイトルの記事ですが、これはいわば、「今、アーキテクチャが面白い」という内容のものです。記事の内容には必ずしも沿いませんが、ここで述べられているトレンドを、私なりの理解でご紹介しましょう。

ここでいう「アーキテクチャ」はコンピュータのアーキテクチャです。皆さんはコンピュータ・アーキテクチャ、という言葉から何を考えるでしょうか?私がはじめてコンピュータに触ったのは高校生の時、1970年代の半ばですが、そのコンピュータは沖電気のOKITACというミニコンピュータで、沖電気独自の16ビットアーキテクチャのものでした。その後、マイクロコンピュータの時代が来て、インテルの8080、モトローラの6800を代表とする様々なアーキテクチャが世の中に現れました。それから30年余、世の中のコンピュータ・アーキテクチャに起きてきたことは何でしょうか? それは誤解を恐れずに言えば「インテル・アーキテクチャへの収斂の歴史」だったと言えるのではないかと思います。

アーキテクチャにはそれぞれ一長一短があり、使い方によってはより性能を発揮しやすいもの、そうでないもの、いろいろあります。しかし、ここ30年にわたってコンピュータの性能を支配的に決めてきたのはアーキテクチャではなく、ムーアの法則、すなわち半導体のプロセスルールだったと見ることができます。80年代には、Lispマシンなどプログラミング言語に特化したアーキテクチャのマシンが作られました。一時期はそれなりの性能が出るのですが、ムーアの法則によって汎用マシンの性能が上がると、性能差がなくなってきます。そして、生産量が多く、したがって設備投資の可能な汎用マシンが逆転してしまうわけです。プログラムを書く方にとってはこれはありがたいことで、一度汎用マシン向けにプログラムを書いておけば、半導体の性能向上のおかげでシステムの性能は、自動的に18ヶ月で2倍になってきたわけです。

ところが、今や半導体のプロセスルールによる性能向上に限界が見えてきました。確かに集積度は上がるのですが、今まで集積度が上がるにしたがって上がってきたクロックスピードにはここのところあまり向上が見られません。これには漏れ電流とか熱の問題とかいろいろ理由があるようなのですが、いずれにせよ、クロックスピードの速いプロセッサに置き換えるだけでプログラムの実行速度が上がる時代は終わりを告げつつあります。

システムの性能向上を半導体の性能向上に任せておけないとすれば、何をしなければならないのでしょうか?ここで、アーキテクチャの考えが出てきます。もともと、問題によってアーキテクチャの得意不得意があるのはよくわかっていましたから、解きたい問題にあわせて専用のアーキテクチャを使ったらどうでしょうか?実は、IBMの技術動向文書GTO (Global Technology Outlook)の2008年版でも明確に、「新しいアーキテクチャが出現しつつある」というトレンドを捉えています。典型的には、IBMのBlueGeneに代表される、スーパーコンピュータの世界でしょう。ローレンスリバモア研究所のBlueGeneはしばらく「世界最高速のスーパーコンピュータ」としてランクされていましたが、今年の6月に同じIBMがロスアラモス研究所に納入したRoadRunnerが1位になりました。BlueGeneもRoadRunnerも科学技術計算用に特化された専用アーキテクチャといえます。BlueGeneの場合は、比較的低速のPowerPCコアを非常にたくさん並列に動かす構成、またRoadRunnerはPlayStation3に使われているCell Broadband Engineというプロセッサをアクセラレータとして使うものです。どちらの方がアーキテクチャとして優れている、というものではありません。ローレンスリバモア研究所も、ロスアラモス研究所も、それぞれ解きたい問題があり、それに最適なコンピュータアーキテクチャを選んだ結果が、BlueGeneでありRoadRunnerであったわけです。

スーパーコンピュータ以外の世界でも、新しいアーキテクチャが現れ始めています。デスクトップの世界で常識となりつつあるマルチコアは、ある意味で新しいアーキテクチャと言うことができます。マルチコアマシンの上で、性能を出すためにはソフトウェアの書き換えが必要になってくるからです。あるいは、GoogleやAmazonのデータセンターは、個々のプロセッサこそ汎用のIntelアーキテクチャですが、コンピュータシステムとしては非常に大量のプロセッサを並列に動かすスケールアウトシステムになっています。これらも、ワークロード(負荷)に合わせた専用アーキテクチャのコンピュータシステムと見ることができるでしょう。また、最近流行り始めている面白いものとしては、汎用グラフィックスプロセッサ(GPGPU)を科学技術計算に使う、というのもあります。問題の性質によっては、GPGPUを使うことで汎用プロセッサの一桁以上速いプログラムを書くことができるようです。

解くべき問題によってアーキテクチャを選ぶ、これが「ムーア後」の情報処理の鉄則になりそうです。もちろん、新しいアーキテクチャに対してどのようにプログラムを書くか、というのは大きなチャレンジです。これからしばらくは、いろいろエキサイティングな研究開発が行えそうです。

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー