FX10では演算用のSPARC64 IXfx(9fx)チップとTofuインタコネクトを構成するICCチップが必要であったが、FX100では、ICCがSPARC64 XIfxチップに内蔵されることになった。また、Tofu2ではリンクバンド幅が5GB/sから12.5GB/sと2.5倍に高速化された。このため、シャーシをまたぐ長距離の伝送には光を用いており、FX100全体では2/3のリンクが光ファイバによる接続となっている。
次の図に見られるように、ノード間でメッセージをピンポンで往復通信を行った場合のスループットは、メッセージ長が4MiBと長い場合には約11GB/sとなり、これはFX10の2.4倍の性能となっている。また、2方向同時に通信を行った場合のスループットはFX10の18GB/sから42GB/sと2.8倍に向上している。
なお、この図ではTofu2はFDR IBより速いという結果になっているが、隣接ノードとの接続しかないメッシュやトーラスで、遠くのノードと通信する場合は、バケツリレー式に幾つものリンクを通る必要があり、各リンクの交通量が増えるので、InfiniBandと同列にスループットを比較するのは問題がある。
SPARC64 XIfxプロセサでは、計算コア数を倍増しただけでなく、アシスタントコアと呼ぶコアが2コア追加されている。一般的に並列処理を行う場合は、すべてのコアでの計算が終わらないと次の処理に進めない。このため、どれかのコアに割り込みが入って処理の終了が遅れると、それに引きずられてすべてのコアが待つことになり、処理の完了までの時間が長くなってしまう。これによる処理時間のばらつきをOSジッタという。アシスタントコアは、極力、計算コアに余計な仕事をさせず計算に専念させるという目的で設けられている。
タイマー割り込み、通信やファイルIO処理に伴う割り込みを計算コアが処理する構造となっている普通のx86クラスタの場合は、OSジッタにより処理時間が大きくばらついてしまい、ノード数が10万程度になると、理想的な場合に比べて1.6倍も処理時間が掛かってしまうという(このため、これほど大規模なx86クラスタは作られない)。これに対して、16計算ノードに対して1ノードのIOノードを持つFX10の場合はOSジッタが大幅に小さくなっている。しかし、計算コアがTofuインタコネクトの通信処理を行う必要があり、ある程度のばらつきが残ってしまう。
これに対してFX100ではチップに内蔵されたアシスタントコアが通信処理をやってくれるので、さらに、OSジッタを減らすことができている。
また、アシスタントコアでMPIライブラリを走らせることにより、通信と計算を並行して動かすことができる。大きな問題を分割して処理する場合、相互に重なる袖領域を設けて分割し、袖領域のデータを通信でやり取りするという形態は一般的であるが、このような場合は、アシスタントコアがMPIライブラリの処理を行ってくれて、計算コアに負担を掛けないというのは性能向上の点で有利である。
右下のスライドの右側のグラフでは、メッセージ長が長くなるにつれて通信のオーバヘッドが小さくなるということになっている。メッセージ長が長くなって通信時間が減るはずはないので、メッセージが長くなると、計算時間も長くなり、相対的にはオーバヘッドとして見える通信時間の比率は小さくなるということのようであるが、どのような状態での測定であるかが分からないので、なぜかは、はっきりしない。
x86クラスタでは割り込みが入るので処理時間に大きなばらつきがでる。FX10では頻度は減ったが、時々、遅いケースがある。FX100では、アシスタントコアの働きで0.2%程度のばらつきに抑えられている |
アシスタントコアでMPI通信を処理して、演算と通信のオーバラップを行う。メッセージ長が長くなると、通信のオーバヘッドが減少している |
この発表では、NAS Parallelベンチマークの中のFFT計算、CCS-QCDという量子色力学計算のミニアプリ、気象計算のNICAM-DCのミニアプリの性能比較を示している。FiBER Miniappは理研AICSが進めているプロジェクトで、本当のアプリから機能削減を行って簡略化したミニアプリを開発している。実アプリは数万から数十万行と巨大なものが多いが、元のアプリの構造は変えず、通信やファイルIOも含んでいる数千行から数万行程度のアプリの小型化を行う。計算カーネルだけを抜き出したものではなく、実アプリと近い挙動を示すが、実アプリよりずっと小さいので性能評価に使うには便利である。
NAS Parallelベンチマークの512点の3次元FFTベンチマークの場合、FX10の16スレッド実行の場合は11GFlops程度の性能であるが、32スレッドのFX100では38GFlops程度と3.3倍の性能になっている。右側のグラフではメモリ待ちやキャッシュ待ちの時間が大きく減っているのが見られる。
CCS QCDのミニアプリでは、同じ16スレッドの場合でもFX100の方が1.6倍速く、SPARC64 XIfxプロセサの32スレッド全部を使った場合は3.0倍速いという結果が得られている。また、再利用が多いデータと、そうでないデータでキャッシュを分けるセクタキャッシュ機能を使用すると、若干性能の向上が見られる。
NICAM-DCのミニアプリでは、FX10 8ノードとFX100 4ノードと計算コア数が同じ条件で比較を行っている。ノードあたりのGFlop/s値ではFX100はFX10の2.9倍となっているが、ノード数が半分であるので、実行性能で言えば1.45倍ということになる。このケースではキャッシュ待ちと命令の実行時間が大きく短縮されている。
NICAM-DC-MINIでの性能比較。FX10は8ノード、FX100は4ノードで同じコア数でもFX100は約1.5倍の性能 |
FX100の次はExascaleの国家プロジェクトFLAGSHIP 2020。アプリの互換性を保つため、FX100の延長のアプローチで、基本設計を開始 |
そして、富士通は、京コンピュータ、FX10、FX100に続いて、次は国家プロジェクトであるExascaleの「FLAGSHIP 2020」に取り組む。高い実アプリ実行性能を実現することが目標であり、かつ、アプリ互換性を重視し、これまでのマシンと近いアプローチを取る方針であるという。
つまり、SIMD幅の拡張などは有り得るが、最近流行のGPUなどのアクセラレータは採用しないと考えられる。その場合、消費電力がどの程度になるのかが注目される。FLAGSHIP 2020の基本設計はすでに始まっているという。