インタビュー
2003/07/25 14:20 更新


Interview:Opteron+Linuxで世界最速を目指す「Red Storm」開発責任者に聞く

米サンディア国立研究所で2004年に稼働予定の、世界最速スーパーコンピュータ「Red Storm」は、Opteron1万個以上が使われる。なぜOpteronが採用されたのか、その理由を開発責任者のコブレンツ氏にうかがった。

 Red Stormは、1万368個のAMD Opteronプロセッサを搭載することにより、40TFLOPS(テラFLOPS)もの演算性能を達成した超並列スカラー型のスーパーコンピュータである。Red Stormの開発と製造は米Crayが手がけており、米サンディア国立研究所が1996〜1997年に配備した3.2TFLOPSのスーパーコンピュータ「ASCI Red」を置き換えるものになる。今回は、Crayの副社長でRed Stormプロジェクトの開発責任者でもあるブライアン・コブレンツ(Brian Koblenz)氏に、Red Stormの開発経緯をお聞きした。

大規模システムに対する高い親和性を持つAMD Opteronプロセッサ

 Red Stormは、108基の計算ノード用キャビネットに加え、16基のサービスおよびI/Oノード用キャビネット、16基のスイッチ用キャビネット、そして合計240Tバイトのディスクストレージ用キャビネットから構成されている。Red Stormの設置面積は、世界最高クラスの処理性能を達成しながら、ディスクストレージを含めて約3000平方フィート(270平方メートル)とかなり小さい。例えば、2003年6月時点でスーパーコンピュータ トップ500の1位に君臨する海洋科学技術センター横浜研究所の地球シミュレータ(NECが開発)は、Red Stormの約12倍にあたる3250平方メートルもの設置面積を有している。

 こうしたコンパクトな設計を可能にしたのは、各並列ノードのCPUとしてPCワークステーションにも搭載可能なAMD Opteronプロセッサ(以下、Opteron)を採用し、ノードの配置を高密度化できたことが大きな理由だ。実際、計算ノード用キャビネットには、1キャビネットあたり96もの計算ノードが含まれる。コブレンツ氏は、Red StormでOpteronを選択した理由について次のように述べる。

米Crayのブライアン・コブレンツ副社長

米CrayでRed Storm開発責任者のブライアン・コブレンツ氏


 「Opteronは、Red Stormの要件に耐えうる高い処理性能を持っているのはもちろんですが、それ以外にも数多くの利点があります。例えば、外部とのデータ転送には広帯域のHyperTransportを採用しており、システムの規模を広げていった場合のスケーラビリティを確保しやすいことが挙げられます。また、メモリコントローラをCPUに内蔵しているため、メモリアクセスの遅延が最小限に抑えられ、CPUノードを構成するチップ総数も削減できます。さらに、32ビットと64ビット環境の両方をサポートしているので、ASCI Redで開発された既存のアプリケーションをポーティングしやすいという利点もあります」

Crayが開発した超高速インターコネクト技術で超並列化

 それぞれの並列ノードは、Crayが開発した「SeaStar」と呼ぶインターコネクトチップを介して3Dメッシュ状に接続されている。ノード間の帯域幅は双方向6Gバイト毎秒で、MPI Latency(メッセージ通信の所要時間)は、隣接するノード間で2マイクロ秒、最も離れたノード間でも5マイクロ秒ときわめて短い。ちなみに、ASCI RedのMPI Latencyは、隣接するノード間で15マイクロ秒、最も離れたノード間で20マイクロ秒である。

 Red Stormの計算ノードは、27×16×24の3Dメッシュで構成されている。それぞれの計算ノードには、1個のOpteronと1GバイトのDDR SDRAMが搭載されており、Opteronとインターコネクトチップ間は双方向6.4Gバイト毎秒の帯域幅を持つHyperTransportで接続されている。計算ノード全体のメインメモリは約10Tバイト(=1Gバイト×1万368ノード)になるが、ノード内部の物理メモリ空間は32ビット(最大4Gバイト)に設定されており、これらを専用のクラスタリングソフトウェアやSeaStarのデータルーティング機能などにより、ユーザからは単一の巨大なメモリとして扱えるようにしている。

 サービスおよびI/Oノードは、2×8×16で構成されたものが128本のインターコネクトを通じて計算ノードパーティションの両端を囲むように配置されている。つまり、全体としては256個ずつのサービス用およびI/O処理用プロセッサが搭載されていることになる。これらのノードにも計算ノードと同じくOpteronが採用されているが、同時に外部ネットワークに接続するための10Gビットイーサネットコントローラやストレージに接続するためのRAIDコントローラもHyperTransport-to-PCI-Xブリッジを介して搭載されている。なお、計算処理に関与するのは計算ノードだけなので、Red Stormの演算性能に直接関係するOpteronの数は、計算ノードに使用されている1万368個ということになる。

Crayの豊富な開発経験とOpteronの採用が短期の開発を可能に

 Red Stormのシステム構築が完了するのは2004年夏、さらに動作検証を経て、本格的に稼働し始めるのは2004年末を予定している。Crayが米国エネルギー省とRed Stormの契約を結んだのは2002年10月のことなので、丸2年ちょっとでRed Stormを立ち上げる計算だ。しかし、Red Stormほどの巨大なシステムを2年で立ち上げることは容易ではないだろう。例えば、Red Stormのライバルともいえる地球シミュレータは、開発着手から本格始動までに約5年もかかっている。コブレンツ氏は、これほど短期でRed Stormを立ち上げられる理由を次のように説明する。

 「サンディア研究所の担当者はASCI Redの開発で、弊社は『Cray T3E』(HP Alpha 21164Aプロセッサを搭載した超並列スカラー型のスーパーコンピュータ)の開発でそれぞれ多くの経験をしており、これらの経験がRed Stormの開発にも大いに役立ちました。また、弊社ですでに開発済みのテクノロジをRed Stormに流用できたことも、開発期間の大幅な短縮につながっています。もっとも、それをより円滑にしてくれたのは、OpteronとHyperTransportです。すでにお話ししたように、OpteronとHyperTransportの組み合わせは大規模システムとの親和性がきわめて高く、Red Stormの実現には欠かせない存在となりました」

 「また、Red Stormの実現にあたり最後の切り札となったのが、ノード間を接続する弊社のインターコネクトチップ(SeaStar)です。このチップが完成するまでは、いくつかのハードウェアやソフトウェアの開発、デバッギングを行うために、FPGA(Field Prgrammable Gate Array:主にハードウェアの試作で用いられる書き換え可能な大規模集積回路)を使用して開発を進めてきました」

 「基本的には、スーパーコンピュータさながらの並列作業でいろいろなことをこなしていき、短期間で開発を進めなければならないのはいうまでもありません。こうした努力があってこそ、2年という短期間の開発を可能にするのです」

Linuxの弱点を補う2つの対策

 Red Stormは、サービスおよびI/O処理を行うノードのOSとしてLinuxを、ファイルシステムには巨大Linuxクラスタ向けのファイルシステムであるLustleを採用している。Linuxは、64ビット版OSおよび本格的なクラスタリングソフトウェアの登場により、エンタープライズクラスのアプリケーションにも柔軟に対応できる力を手に入れたが、他の市販UNIX系OSと比較するとまだ発展途上に感じられる部分も少なくない。コブレンツ氏は、きわめて高い処理性能と信頼性が求められるスーパーコンピュータにLinuxを採用できた理由を次のように説明する。

 「Linuxは、他の商用UNIX系OSと比べて未完成の部分があることは否定できません。しかし、LinuxはRed Stormをコスト効率の高いシステムに仕上げるために不可欠のOSとなりました。弊社は、LinuxをRed Stormに組み込むために、Linuxが抱えるいくつかの問題を緩和する2つの対策を立てました」

 「まず一つ目ですが、ノード数がきわめて多い計算ノードのOSには、Linuxではなくサンディア国立研究所が開発したCatamountと呼ばれるLWK(Light Weight Kernel)を採用しています。Catamountは、主にジョブ、メモリのアロケーションと実行に機能を絞ったOSです。これにより、ノードのリソースを計算に最大限割り当てることができ、安定して高い演算性能を提供できるようになります」

 「二つ目は、各ノードの機能を限定するという対策です。これは、Linuxに限らずソフトウェア全体にまつわるものです。一般に、ソフトウェアはいろいろな仕事をさせると、これらの相互作用によって動作が不安定になる傾向にあります。また、システム全体のパフォーマンスも低下します。そこで、私たちは、ノードに対する役割を特化することで、これらの問題を解決できるものと考えました」

 「計算のみに専念する計算ノードがあることはすでにお話ししたとおりですが、サービスおよびI/Oノードについても、ジョブの入り口となるログインノード、計算ノードの利用状況を把握するデータベースノード、ディスクとファイルをやり取りするI/Oノードなどに役割が分担されています。これらのノードは複数ありますので、それぞれがバックアップとして機能します。こうしたバックアップへの自動切り替えは、Red Storm Management Systemと呼ばれる特別なハードウェアとネットワークを通じて行われます。このため、システムの一部がダウンしたとしてもそのまま動作を継続できるようになっています」

ベクター型と超並列スカラー型は適材適所で使い分けるべき

 スーパーコンピュータの世界では、ベクター型がいいのか、それとも超並列スカラー型がいいのかという議論が常につきまとう。例えば、前出の地球シミュレータは、ベクター型を基本とする専用プロセッサを採用することで、40TFLOPSという演算性能を達成している。一方、Red StormはOpteronをベースとした超並列スカラー型の採用によって、同じく40TFLOPSを達成している。だが、同社では「Cray X1」のようなベクター型のスーパーコンピュータも発売しており、こちらは最大構成(1024 4-way nodes)において52.4TFLOPSを達成できる。

 つまり、最高クラスのスーパーコンピュータに関していえば、ベクター型も超並列スカラー型もほぼ演算性能が拮抗している状況にあり、どちらが優れているのかを一概に判断することは難しい。コブレンツ氏は、こうした現状を踏まえた上で、ベクター型と超並列スカラー型の特徴を次のように説明する。

 「ひとくちにベクター型と超並列スカラー型の長短を述べることは難しいことです。もちろん、あるアプリケーションではベクター型が、別のアプリケーションでは超並列スカラー型が優れたパフォーマンスを示すというのは事実であり、最も大事なのは両者を適材適所できっちり使い分けることだと思います」

 「最も端的な例を挙げますと、データの長いシーケンスの中でまったく同じ命令を繰り返すようなプログラムは、ベクター型が優れたパフォーマンスを示します。ベクター型は、より少ない命令でより多くの作業をこなすことができますし、メモリを参照する場合にもその並列度を高めやすいのが特徴です。ただし、プログラムにどのような依存関係があるかをしっかりと見極めなければ、並列度をうまく高められません。裏を返せば、強い依存関係を持つプログラム、例えば多くの分岐が発生するようなプログラムについては、超並列スカラー型のほうが向いていることになります」

 「今回、Red Stormで超並列スカラー型を採用したのは、同じく超並列スカラー型であるASCI Redをそのまま引き継ぐためです。ASCI Red向けに開発されたプログラムは、超並列スカラー型に最適化されたものですから、これらのプログラムを新システムにポーティングし、それを最適なパフォーマンスで実行するためには、後継のシステムすなわちRed Stormも超並列スカラー型でなければなりませんでした」

 Red Stormは、1万368個のOpteronを搭載したシステム構成からスタートする。しかし、米国エネルギー省がCrayと結んだ契約内容によれば、60テラFLOPSまで演算性能を高めるオプションも含まれており、時期を見ながらさらなる高性能化が図られることは間違いない。実際、Red Stormは、最大3万個のOpteronを搭載できるように最初から設計されており、演算性能を180テラFLOPSまで高められるだけのスケーラビリティを持ちあわせている。Red Stormが、スーパーコンピュータ トップ500の1位に躍り出る日もそう遠くはなさそうだ。

関連記事
▼日本AMDと米Crayが、Opteronを1万個搭載したスーパーコンピュータについて説明
▼「米国最速予定」スパコンはOpteron + SuSE Linux
▼米サンディア国立研究所向けスーパーコンピュータにAMD Opteronが採用

関連リンク
▼AMDニュースレター

[聞き手:伊勢雅英,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.