このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第300回

スーパーコンピューターの系譜 世界初の1PFLOPSを達成したRoadRunner

2015年04月20日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 BlueGene系列についてはまたそのうち触れるので、スーパーコンピューターの系譜は再びASC系列に戻る。記念すべき連載300回を迎える今回は、ASCI Qの置き換えのためにIBMが開発したRoadRunnerだ。

世界で初めて1PFLOPSに到達したコンピューター「RoadRunner」

ノード数も動作周波数も限界
後継機作りに立ちふさがる壁

 なんだかんだ言いつつ、地球シミュレータとBlueGene/Lという2製品の成功は、ASC系列を考える上で大きな課題を残した。

 まず1つ目は、ノード間接続のレイテンシーの問題である。ASCI系列だけを見ていれば、SMP(Symmetric Multiprocessing:対称型マルチプロセッシング)+クラスターという方式がダメと思いそうだが、地球シミュレータも初代システムは640ノードを1段のクロスバーでつないだ巨大なSMP+クラスター構成である。

 それにもかかわらず、この地球シミュレータが高い性能を発揮した理由の1つは、そもそもプロセッサーがベクトル方式で、250MHzと低い動作周波数でも8GFLOPSもの性能をたたき出しており、これでトータルの性能を稼ぎ出したことだが、もう1つはノード間接続が極めて高速だったことだ。

 これは単段のクロスバーを使ったことによるものだが、ここでクロスバーを使えたのはノード数がそれでも640と少なかったことによる。後期型の地球シミュレータではノード数が5120に増えた結果、単段クロスバーを放棄し、2段構成のクロスバーでFat Treeを構成するという、なんだかASCI Qを彷彿とさせる構成になっている。

 つまり、ノード数が増えるとどうしてもレイテンシーが増えるという、当たり前と言えば当たり前の結果である。

 もう1つは汎用プロセッサーの限界である。BlueGene/LはデュアルFPUを使って700MHz駆動で2.8GFLOPSを実現し、トータルで360TFLOPSものマシンを構築できたが、ではこれで1PFLOPSができるかというと、ノード数が3倍ではノード間通信のレイテンシーが難しいことになるだろう。

 つまりmidplaneの数が128個から384個になるわけで、これをプログラムで使い切るのは結構難しそうだ。では1つのmidplaneのノード数を増やすかというと、今度はmidplane内のレイテンシーがぐっと増えそうだ。

 では動作周波数を3倍に引き上げようということになるが、その場合は消費電力がおそらく10倍を超え、Blue Gene/Lの高い実装密度はまず実現できない。

 CRAY-2並に冷却液に全部漬け込むくらいの放熱対策が必要になるであろうから、性能/消費電力比が桁違いに悪くなる。

 ではFPUの数を6つに……というくらいなら、もうベクトル型プロセッサーにしてしまったほうが早い。地球シミュレータにしてもBlue Gene/Lにしても、ぎりぎりのバランスでうまくシステムとして成立しているので、これをそのまま拡張するとバランスが崩れることになる。

 こうした話は2004年頃から本格的に出てきており、解としては1ノードあたりの性能を引き上げるのが一番楽、というこれも当たり前の話になった。ただ動作周波数に関してはもうそろそろ限界が見えてきていた時期だけに、これは方法論としては筋がよろしくない。

動作周波数の推移。出典は2007年にロスアラモス国立研究所のJohn A. Turner氏が発表した“Roadrunner: Heterogeneous Petascale Computing for Predictive Simulation”という論文より。元データがTom's hardware guideというところがまたなんとも。このあともじりじり動作周波数は上がってはいるものの、2015年現在では4GHzあたりで頭打ち。これを超えた製品を出しているのはIBMだけである

 ではマルチコアは? というと、こちらは半導体製造技術との兼ね合いになるわけだが、コア数を増やすとコア間の同期が問題になるため、こちらも無尽蔵に増やせるものでもない。そこでHeterogeneous Architecturesを利用しよう、というのがASCの中での結論だったようだ。

Heterogeneousに活路を見出す

 当時はまたHeterogeneousと呼べるものは3つしかなかった。まずはインテルが研究開発の一環として発表した80コアのプロトタイプ(関連記事)、それとGPGPUとして利用できるようになったGPU、もう1つがCellである。

インテルが発表した80コアの概要。この80コアCPU1つで1.8TFLOPSなので、555個並べれば計算上は1PFLOPSが実現できる

GPUを演算に利用する利点。ただ、2006年といえばまだNVIDIAがG80コア(GeForce 8800世代)でCUDAを利用できるようになったばかりの頃で、性能も不十分だし倍精度浮動小数点は扱えなかった

 ご存知の通り、CellプロセッサーはSCEのPlayStation 3のためにSCEとソニー、IBM、それに東芝が共同で開発したプロセッサーで、64bitのPPE(PowerPC Processor Element)と呼ばれる汎用プロセッサーに、SPE(Synergistic Processor Element)と呼ばれるサブプロセッサー×8を組み合わせたものである。

Heterogeneousの新星Cellプロセッサー。CM-5と比較しているあたりがいかにもである。とはいえ、Cellはすでに量産に入っていた時期だから、確実に存在するソリューションであることは間違いなかった

 PPEそのものはあまり性能が高くなく、主にSPEの管理などに専念する形で、演算そのものはSPEが主体で行なう方が一般的だった。

 このSPEは単精度浮動小数点演算ならば1つあたり25.6GFLOPSで、これを7つ利用することで179.2GLOPSの演算性能を発揮できた。

 ちなみになぜ7つかというと、8つのSPEのうち1つは無効にされているためで(これは歩留まり改善のためである)、仮に8つとも有効にしたら204.8GFLOPSとなる計算である。

 加えて言えば、仮にPPEにもフルに演算をやらせた場合のピーク性能は230.4GFLOPSになる計算だが、ここまでの性能は出なかった模様だ。

→次のページヘ続く (ASC Projectが選んだのはOpteronとCell

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン