09/12/07 23:15
スーパーコンピュータの事業仕分け

各方面で論争を巻き起こしたこの話題。日頃あまり縁がないジャンルですが、自分なりにも考えてみました。
ネットとかいろいろ見ていると、IT関係の人に、慎重な意見が多いのには意外でした。もっと必要性を訴えているのかと思いきや、費用対効果の面で疑問を感じている人が多かった印象があります。どちらかと言えば、ジャーナリストの方が、スーパーコンビュータを科学技術の象徴的な存在として、今回のこの決定を批判するような報道が多かったような気がします。
コンビュータの処理速度をあげるには、基本となるCPUクロック周波数をあげたり、行列演算のような特殊な演算を一括でやるような命令セットを用意したり、また複数のCPUを使って並列で処理させたりすることが必要となります。クロック周波数は最近はあまり劇的にあがらなくなり、命令セットも汎用性を考えるとあまり特殊なこともできないし、そうなると並列処理の技術が重要な要素となってきます。ということはプロセッサの開発よりも、この並列処理、つまり制御するソフトウェアの技術にもっと金をかけることの方が重要になってくることになります。

最近、この並列処理に関して言語レベルでサポートするものが話題となっています。以前から興味があるHaskellもそうですが、GoogleもGoという言語を発表しました。やはりGoogleの動向というのは、目が離せません。先が見通せている少ない企業だと思います。理論や概念を述べたり、動作させるだけではなく、実際にサービスとして稼働させてしまう力があるからです。
今回のスーパーコンピュータ論争で、最初に感じたのが、Googleがデータセンターでよく使われる高性能サーバコンピュータではなく、自作のローコストサーバを多数組み合わせて効率よく運用して、パフォーマンスをあげているやり方に対する既存データセンタでのハイコスト運用の対比でした。サーバコストを考えるとトラフィックの多い、また負荷のかかるサービスは極力したくないのが、サービスプロバイダとしての常識でしたが、これを覆してGmailをはじめとする各種便利のサービスが無料で提供するという、ちょっと昔では考えられなかったサービスを実現できるのも、このようなベースがあるからなのでしょう。さらに発電の分野にも手を出しています。サーバを運用する発電システムについてもGoogleは自前で構築するつもりです。

こういった大きなビジョンの中で、各プロジェクトがコントロールされていることは、さすがです。スーパーコンビュータの議論も、もっと大きなビジョンについても語ってもらえたらと思います。世界一を目指さなければ、二位もとれない、などというのもいいですが、日本の受験制度のように、ただ高い点数を競うことが目的であってはいけないと思います。高い点数をとるテクニックよりも実用的で高い技術の習得を目指してほしいところです。