図1●ICCの概要 富士通グループのデータ。
図1●ICCの概要
富士通グループのデータ。
[画像のクリックで拡大表示]

 Tech-On!でも何度か紹介しているように,理化学研究所の「京(K computer)」は,稼働中のスーパーコンピュータの性能を集計する「TOP500 Project」の2011年6月のランキングで1位の座を獲得した。その原動力になったチップ(LSI)は二つある。一つはマイクロプロセサ(MPU)の「SPARC64 VIIIfx」。もう一つはMPU間を接続するインタコネクト・コントローラ(ICC)である。

 どちらも,富士通グループが開発したLSIである。SPARC64 VIIIfxが15年間以上前から改良を積み重ねてきたチップであるのに対して(Tech-On!関連記事),ICCは,「京」向けに,今回,新たに開発したものだ(図1)。開発に携わった富士通研究所の吉川隆英氏(ITシステム研究所デザインイノベーション研究部)に話を聞いた。同氏は,ICCの検証に関して,第24回 回路とシステムワークショップ(2011年8月1日と2日に電子情報通信学会 基礎・境界ソサイエティが淡路夢舞台国際会議場で開催)で招待講演を行っている(同氏への取材は,招待講演とは別の機会に実施した)。

これまでは誰も開発しなかった

図2●「京」と競合のスーパーコンピュータの比較 富士通グループのデータ。
図2●「京」と競合のスーパーコンピュータの比較
富士通グループのデータ。
[画像のクリックで拡大表示]

 吉川氏によれば,「京」は,性能だけでなく,MPU数,解いた行列の規模,稼働時間でも2位以下に大差を付けている(図2)。6万8544個のMPUをつなぎ,28時間の連続稼働を可能にしたのが,ICCだと言える。「京」では,MPUとICCをペアにして「ノード」と呼んでいる(図3)。4ノードを実装したのが,システム・ボード(SB)である。SBを24枚挿したのが「ラック」である。「京」は最終的には,800個以上のラックをつないだ構成になる(性能ランキングで1位になった時は,これより少ないラック数で稼働)。

図3●「京」の構成と,ICCを使った通信 富士通グループのデータ。
図3●「京」の構成と,ICCを使った通信
富士通グループのデータ。
[画像のクリックで拡大表示]

 ノード間(MPU間)はICCで接続される。隣接するノードを経由して,目的のノードへ,いわゆるバケツ・リレー方式でデータが送られる。ICCは「Tofu」と名付けた6次元メッシュ(端のある接続)/仮想3次元トーラス(端のない接続)型のネットワーク(接続)を実現する。このネットワークは分割してもトーラス型を維持可能なため,故障に強かったり,輻輳や衝突が少ないといった特徴がある(図4)。

 物理的には,一つのICCは10個のICCと接続される(つまり10個のICCと隣接している)。この10個の隣接ICC接続用インタフェースのほかに,ICCは,MPUとのインタフェース,さらにPCI Expressのインタフェースも備えている(図1参照)。仮想3次元トーラス型の接続を10個のI/O端子で実現するICCは複雑なチップで,「これまでは,誰も開発にチャレンジしたことがなかった」と吉川氏はいう。

図4●ICCで構成できるネットワーク 富士通グループのデータ。
図4●ICCで構成できるネットワーク
富士通グループのデータ。
[画像のクリックで拡大表示]

 もし同氏がLSI(ハードウェア)のR&Dに以前からずっと携わっていたら,これほど複雑なチップをいきなり開発していなかっただろうと,筆者は推測する。新規のチップを想定通りに動作させるのは,それほど簡単ではないからだ。しかし吉川氏は,幸か不幸か,ソフトウェアやシステムのR&Dに携わっていた。このため,システムとしてあるべきインタコネクト・チップを開発した。それがICCである。ただし,当然のことだが,「設計や検証には苦労した」(同氏)。