プロから見た地球シミュレータの実力   

2005年1月16日



☆正月ボケようやく解消。   
お正月気分もそろそろ抜ける頃であるが、 皆様はいかがお過ごしでしょうか?

当サイトはお屠蘇気分も抜け切らぬ正月ボケもようやくにして終了という感じなのだが、 今日の本題とは無関係ながら非常に面白い記事が出ていたので紹介したい。

それは Centrinoに対抗するモバイルCPU「Turion 64」 という記事である。

注目点はTurion64そのものではなく、最後に余談として書かれている事である。 引用すると下記の通り。

「当社ではAthlon 64 FXをハイエンドゲーマー向けと位置づけている。 ところが、現在のPCゲームはほとんどがシングルスレッドで、 デュアルコアにしても結局はシングルスレッドで使われることが予想される。 デュアルコアCPUでは、どうしてもシングルコアに比べてクロック周波数が下がってしまうので、 Athlon 64 FXに関しては当面、つまりPCゲームがマルチスレッド対応になるまでは シングルコアのままにしておくことにした」(セクラー氏)

つまり、クライアント用途でのフラッグシップであるAthlon64FXはシングルコアで、 Athlon64がデュアルコアだそうだ。 シングルとデュアルの立場の逆転現象が起こったのである。

当サイトの立場からすれば以前から主張している通りであり、 フラッグシップをシングルコアにするのはまったく賢明な措置であると考える。 クライアント用途でデュアルコアが有効なのは、ビデオ編集等の用途に限られているからだ。

以前AMDのMeyer上級副社長は「一般論としてだが、短期的な展望では、 サーバー環境ではマルチコアが自然な流れにあるのは明白だ。 今日のサーバーアプリケーションは、すでに自然にマルチスレッディングしているからだ。 将来を見ると、クライアントでのマルチスレッディング環境ももっと普通になってゆくだろう。 しかし、(サーバーと比べると)ゆっくりとしたペースだ」と述べている。 (引用元: AMDが2005年にデュアルコアCPUを投入)

長らく当サイトの記事をお読みの方々にはピンとくるだろうが、 このMeyer上級副社長の意見は当サイトの主張とまったく一致する。 デュアルが最も効果的なのはクライアント用途ではなくサーバー用途である。 だから、デュアルコアを最初に持ってくるべきは、まずサーバー用途だと思う。

しかし、どうしてもクライアント用途で投入したいと言う事であれば、 今回のAMDの決定はまったく正しい判断であると思う。 このような揺り戻し現象は今後あちこちで発生するであろう。 CPUベンダーも当サイトと同じく正月ボケから脱却しつつあるようだ。

それにしても、デュアル化を推進するためにシングルコアのクロック周波数を 故意に落とすような某メーカーと比べ、判断ミスをちゃんと修正してくるAMDの 大人の態度には素直に拍手を送りたい。

☆まじめな論文を読む   
さて、年頭挨拶を別とすれば本年最初のネタであるが、 予告通り地球シミュレータネタで行きたい。

まず、今回のネタには元ネタというか、元となった論文がある。 Scientific Computations on Modern Parallel Vector Systems という論文がそれである。

この論文であるが、著者はローレンス・バークレイ国立研究所プリンストン・プラズマ物理研究所の第一線研究者たちである。 いわばプロ中のプロであり、情報の信頼性としてはこれ以上は望めないであろう。 また、どちらもアメリカの国立研究所であり、いわばライバル国の研究者の解析であるから、 それぞれの製造メーカーが提供するデータと違ってかなりシビアなプロの眼で調査された上での 客観性の高い報告である。

この論文では、4種類のそれぞれ性格を異にした科学技術シミュレーションプログラムを通じて 5種類のスーパーコンピュータの性能を調査している。 スーパーコンピュータはスカラパラレル機3機種とベクトルパラレル機2機種。

まずは比較対象になるコンピュータを見てみよう。

コンピュータ CPU数/ノード クロック
 MHz
プロセッサの理論ピーク性能
 GFLOPS/s
メモリバンド幅
 GB/s
1FLOPあたりのメモリ帯域(ピーク)
 Byte/FLOP
MPIレイテンシ
 μsec
ネットワーク帯域幅
 GB/s/CPU
1FLOPあたりのネットワーク帯域幅
 Byte/s/FLOP
ネットワークトポロジ
Power3クラスタ
IBM pシリーズ
16 375 1.5 0.7 0.47 16.3 0.13 0.087 ファット・ツリー
Power4クラスタ
IBM pシリーズ690
32 1300 5.2 2.3 0.44 7.0 0.25 0.025 ファット・ツリー
Altix3000 1500 6.0 6.4 1.1 2.8 0.40 0.067 ファット・ツリー
地球シミュレータ 500 8.0 32.0 4.0 5.6 1.5 0.19 クロスバー
CrayX1 800 12.8 34.1 2.7 7.3 6.3 0.088 2D-トーラス

Powere3クラスタはローレンス・バークレイ国立研究所に設置してあるシステムで、 Power4クラスタはオークリッジ国立研究所に設置してあるシステムだそうだ。 Altix3000はプロセッサとしてItanium2を使用しており、 最新のTOP500で第二位になったColumbiaシステムの母体となった システムであることは記憶にとどめていただければ幸いである。 Columbiaは基本的には20台のAltix3000をInfiniBandで結合したシステムであるからだ。

この表からはいくつかの事がわかるが、もっとも端的なのはメモリのバンド幅だろうか? スカラパラレル機とベクトルパラレル機では明確に一桁位バンド幅が 違う事がおわかりいただけると思う。 浮動小数点演算1回あたりのメモリバンド幅が大きい事が、ベクトル方式での 実演算性能が高い事を大きく支えている事がわかる。

ネットワークについては、レイテンシが小さい事と 浮動小数点演算1回あたりのバンド幅が大きい事が重要である。 (どちらがより効くかは用途による。) 地球シミュレータは、レイテンシでAltixに次いで2位、 浮動小数点演算1回あたりのバンド幅は首位だから、 総合的に見ればベストであると言えるだろう。

では、次に評価をするために使用したシミュレーションプログラムを見てみよう。

プログラム 行数 分野 方法 構造
LBMHD 1500 プラズマ物理学 ラティス・ボルツマン法 格子
PARATEC 50000 物性科学 密度汎関数法 フーリエ/格子
CACTUS 84000 宇宙物理学 重力アインシュタイン理論 格子
GTC 5000 核融合シミュレーション ウラソフ-ポアソン方程式 粒子

たるさんは一応は技術者ではあるが、論文内容のレベルの高さと専門の違いにより、 さすがにこれらのシミュレーションすべての解説は出来ない。だが、 一つだけそれなりに理解できるのはPARATECである。

PARATECは密度汎関数法に基づく電子密度計算プログラムであり、 基底関数として平面波と擬ポテンシャルを使用して非経験的に計算を行う。 これは密度汎関数法では普通に用いられる方法である。 (ただし、密度汎関数法は励起状態の研究には使えないので実際に使ったことはない。)

論文を読むと、まず基底関数を3次元フーリエ変換しているようだ。 これも科学技術計算ではよく使われる手法である。 直接に実空間で計算するより、フーリエ空間で計算した方が計算量が減らせる場合は、 フーリエ変換と逆フーリエ変換の手間を考えあわせてもこのような計算経路を たどった方がよいからだ。

FFT(高速フーリエ変換)は非常に筋のよい計算アルゴリズムであることが知られていて、 FFTによる演算量の増加を考えあわせてもトータルでの演算量が減らせるケースは 科学技術計算ではよく出てくる。

ちなみに、密度汎関数法というのは、非経験的量子化学計算においては分子軌道法と 双璧をなすものである。当サイトは一応化学が専門なんで、 もう一方の分子軌道法は習ったことがある。 もっとも、できの悪いタコ学生だったので、 非経験的分子軌道法の詳細は忘却の彼方だが...

この論文では出てこないが、密度汎関数法とともに 分子軌道法もスカラパラレル機に適した計算法だ。 非経験的分子軌道法では2電子積分項がSCF計算と共に演算量の大部分を占めるが、 2電子積分は分子を構成する原子の組み合わせで演算量が決まるにも関わらず、 計算したい組み合わせ以外のパラメータが必要ない。

つまり、直接法(そのつど2電子積分を再計算する方法)を使えば、 ノード数に比例した演算性能を得ることが出来る。 このため、分子軌道法や密度汎関数法はベクトル機のメリットが出にくい分野であることは容易に想像できるし、後述するがその通りの結果になっている。

☆FM-8で分子軌道計算   
そうそう、ちょっと余談だが思い出話を一つ。 量子化学計算といえば、学生時代の実験演習でやったレポートの課題が忘れられない。

当時、世の中は16bit機全盛の時代である。 ようやく某大学の化学系学科に進んだたるさんであるが、 国民機と呼ばれ、当時もっとも人気のPC98シリーズは あまりにも高価で購入することが出来なかった。

そこで、なけなしのバイト料をつぎ込んで既にかなり時代遅れとなっていた 中古の8bit機(FM-8)を買ったのであった。 (高校時代の手動ワンボードマイコンよりは進化したが、時代には周回遅れであった。貧乏人の悲劇!) こいつは全メモリ容量がBASIC-ROM込みで64KBという奴で、遅いの遅くないの...

せっかくコンピュータを買ったのであるから、こいつを使ってレポートを書いてやろうと思ったのだが、 その利用方法が分子軌道法である。もちろん、非経験的分子軌道法のような高度な手法は 使えないし、コンピュータの演算能力も全然足りない。だから、選択した方法はヒュッケル分子軌道法と いう量子化学を習うと必ず出てくる一番簡単な方法。

ヒュッケル分子軌道法程度になるとさすがにプログラミングは楽で、 要するに線形代数の固有値問題と基本的には同値である。 ヒュッケル分子軌道法ではマトリクスは必ず対称行列になるので、 ヤコビ法でBASICプログラムを書いた。

計算する分子は亀の子(業界用語でベンゼン環をこう呼ぶ。)が1個、2個、3個、4個の4種。ヒュッケル分子軌道法は基本的には2重結合が同一平面内にある事が前提だが、 プログラムに細工をして亀の子間のねじれを パラメータとして計算できるようにしてみた。 つまり、ベンゼン環間のねじれ角をパラメータとして計算をさせるのである。

亀の子が1〜2個の時は大して時間はかからなかったが、3個では「おやっ?」と思い、 4個では...「どひゃ〜、レポートの提出期限に計算が間に合わな〜い!」 と、大いに焦った記憶がある。

4個の場合は24次の対称行列の固有値を計算しなければならないが、 当時のパソコン+BASICインタープリタではこれを計算するのに1パラメータで半日かかったからだ。

提出したレポートであるが、亀の子2個と3個ではねじれ角パラメータに対して 十分なデータ点があったが、4個ではわずか3点しか計算点が無かった事がとても恥ずかしかった。 3点とは言っても、これだけで合計1日半の計算時間を要するのだからやむを得ない。

今ならこの程度の計算は数万円で買える激安パソコンでもまばたきする間に計算が終わっているハズであり、 時代の進歩を感じる。

☆効率面での大きな相違   
余談が過ぎたようだ。本題に戻ろう。

これらのシミュレーション結果はプロセッサ数を変えて行われた。 つまり、スケーラビリティもチェックされている。

各スパコンでの詳しい状況は論文を見て頂くとして、 要点だけを下記に引用しておく。

地球シミュレータの能力が各スパコンの能力に対して何倍かを示したのが下図。 比較可能な同一最大CPU数で比較可能な最大プログラムサイズの場合についての値である。

同一プロセッサ数での性能比較
各アプリにおいて各スパコンに対し地球シミュレータの性能が何倍かを示してある。
あまりにも数値が大きいケースがあるため、縦軸は対数目盛とした。

CrayX1は単一プロセッサ性能が地球シミュレータより高いために、 GTC(磁気閉じこめ型核融合炉のシミュレーションをしている。) において唯一地球シミュレータに黒星があるが、それ以外は無敗。 16戦15勝1敗はチャンピオンボクサーと変わらぬ戦績である。 特にColumbiaのベースとなったAltixに対して無敗であり、かつ、 Altixに対し同一プロセッサ数では平均4.8倍の性能を出している点には 注意しなくてはならないと思う。

余談だが、地球シミュレータ開発関係者にお話を伺ったとき、CrayX1について 「単体プロセッサ性能で地球シミュレータを上回る点は要注意です。」 と警戒感を滲ませていたが、GTCでも効率面では勝っているだけに、 唯一の黒星がその懸念を示していると言えよう。

ただし、GTCについては地球シミュレータではメモリバンクコンフリクトの 発生が示唆されている。一応対策は打たれたが、 論文に「Our short stay at the Earth Simulator Center prevented further optimization.」とあるから、コードに完全な最適化を施す 時間的余裕さえあれば、ひょっとすれば全勝だったかもしれない。

ともあれ、TOP500で使われているLINPACKベンチマークは スパコン用ベンチとしては万能ではない事は、 LINPACKベンチマーク開発者の一人である テネシー大学のドンガラ教授自身が認めている。 地球シミュレータは実戦に強いスパコンであることが知られているが、 それはこのデータから如実に読みとることが出来る。

同一プロセッサ数での性能にここまで差があれば、 用途によっては数倍程度の物量では歯が立たないわけで、 地球シミュレータ内には物量差を覆すほどの技術が詰まっているわけである。

また、次に64プロセッサにCPU数を統一して、比較可能な最大プログラムサイズでの 実効効率を示したのが下図だ。

64プロセッサでの効率比較
各アプリにおいて比較可能な最大問題スケールでの演算効率を示してある。プロセッサ数は64に統一。
(ただし、Power4でのCACTUSは16プロセッサまでしか動作しなかったため、P=16である。)

見ていただければ一目瞭然で、効率面から性能を評価した場合、 地球シミュレータ(図中ではESと略記)は 16戦16勝の無敵のチャンピオンである。 ベクトルプロセッサの効率面でのすばらしさはよく言われているが、 まさかこれほどとは!

ベクトルプロセッサがもっとも効果的に稼働する流体コードLBMHD (MHD発電用プラズマシミュレーションをやっている。)で見てみよう。 地球シミュレータの効率は58%に達するが、スカラパラレル機でもっとも優秀な Altixでさえ効率はわずか11%しかない。

なんと、効率差は約5倍。つまり、この分野の計算でスカラパラレル機が 地球シミュレータに勝とうと思ったら、最低でも5倍の理論ピーク性能のマシンを 建造しなければならないわけで、TOP500とは異なりColumbiaはこの分野の計算では たぶん地球シミュレータには勝てないと予想される。

実はAltixは流体コードが比較的得意とされている。 AltixはPower系のクラスタシステムと比べれば 2倍弱の優秀な効率を示しているから、「流体コードが得意。」と言っても ある意味ではウソではない。

だが、ベクトル機と比べると完全に馬脚を表してしまう。 Altixは流体コードを得意とすると言われているが、それは「スカラパラレル機間では」 という制限付き優位である事がこの論文からわかる。 (同じアメリカ製で比較するなら、 ベクトルパラレル機であるCrayX1の方が高速である。)

しかも、さらにボトルネックがひどいのはクラスタ機である。 Power3クラスタでは7%、Power4クラスタではたったの5%の効率しか出ていない。 なんとたったの5%!

これらのクラスタでは、CPUタイムの95%は タバコを吹かして仕事をサボっているわけで、 「仕事が出来ないよぉ。早くデータ送れ〜。」と、 全然当たらないキャッシュに業を煮やしているわけだ。 (論文でもメモリバンド幅の違いが効率差の原因と解析されている。 Altixがスカラ機同士の比較では比較的良好なのは、 この部分が比較的マシだからである。)

TOP500で第一位となったBlue Gene/Lはノード数が格段に多く、 また非隣接ノード間転送が増えると効率が格段に落ちると考えられるから、 この結果を当てはめてみると、地球シミュレータには Blue Gene/Lの現在形(理論ピーク性能90TFLOPS)でも まず勝てないと予想される。

いや、それどころか完全完成形の理論ピーク性能360TFLOPSとなった場合でも、 勝てる見込みは五分五分以下と考えた方がよいように思える。

もう一つ流体計算に近い状況のCACTUS (二つのブラックホールの衝突をシミュレーションしている。)でも事情は同じで、 地球シミュレータが効率34%なのに対し、スカラパラレル機で一番優秀な 値を出したPower4クラスタでも効率はたったの11%である。 効率差はなんとトリプルスコア以上。

地球シミュレータ建造の主目的の一つに地球温暖化の解明があるが、 この目的の計算内容は気象と海流のシミュレーションがメインだ。 つまり、地球シミュレータでは何をさておき流体コード系シミュレーションが 高速で動作する必要がある。

地球シミュレータが実効性能で世界一なのは5年とのプロの予想があるが、 流体関係に限れば、この言葉が真実を突いていることがこのデータから はっきりとわかる。 地球シミュレータが選択したアーキテクチャは、用途を考えれば どう考えてもベストだったと言わざるを得ないだろう。

では、地球シミュレータに苦手な分野はないのだろうか?

一番効率差がつかなかったのはPARATEC (グリシン結晶内の電子密度計算をしている。)である。

地球シミュレータでは効率58%であり、スカラパラレル機でもっとも効率が高かった Power3クラスタで効率57%。それでも、僅差ではあるが逃げ切り勝ちを納めている。

PARATECでは、計算量の多くが1D-FFT(約30%)BLAS3(約30%)に費やされている。 ちなみに、1D-FFTは1次元の高速フーリエ変換、BLAS3は線形代数用ソルバである。 つまりBLAS3はLINPACKと似た性質を持っているわけで、 地球シミュレータがTOP500において如何にハンデを背負ったベンチマークで 戦ってきたかがお分かりいただけようか?

LINPACKでのベクトル機とスカラ機の効率差は10%内外であるが、 これはとてつもなくスカラに有利なハンデを背負ったジャンルであることが、 この図から読みとる事が出来る。 平均的な科学技術計算における効率差はLINPACK以上に大きい と見るべきだろう。

しかし、そのようなもっとも苦手な分野でも、効率面では差が縮まることはあっても 抜かれる訳ではない事には注意する必要がある。

よく、スカラパラレル機は遺伝子解析やタンパク質の折り畳み構造解析に効果的で、 ベクトルパラレル機は流体コードに効果的と言われる。

これはこれで間違いではないのであるが、両者のアドバンテージには 量的に大きな違いがある事は考えに入れておかなければならない。

スカラパラレル機が効果的な用途でのアドバンテージは、ベクトルパラレル機に対して かすかなアドバンテージしかないが、逆にベクトルパラレル機が効果的な用途では トリプルスコア以上の、いや下手をすると5倍以上のアドバンテージが出るのである。

当サイトがスパコンに興味を持ってからというもののこれらの情報を集めてきたが、 流体コードに代表されるようなベクトルパラレル機がとてつもない効率差を示す 問題は数多くあるが、逆にスカラパラレル機が効果的と言われている用途でも 効率面ではベクトルパラレル機の方が優秀である場合が多い。

効率面では勝てないので、物量面によるローラー作戦で押しつぶす形で 勝っているだけなのである。 (もちろん、それを込みでベクトルパラレル機に勝てると読んでの方針ではあるのだろうが...)

当サイトが勉強不足なだけなのかもしれないが、 ベクトルパラレル機がスカラパラレル機より数倍の効率差をたたき出す シミュレーションはいくらでもあるが、逆にスカラパラレル機が ベクトルパラレル機より効率的なシミュレーションは数えるほどしかない。 (通信システムのシミュレーションで「ベクトルに不向きだからクラスタを使用した。」 という記事を1度だけ見かけた事があるが、それが眼にした唯一の例だ。)

特にスカラパラレル機がダブルスコア以上の効率差で勝つシミュレーションは 生まれてこの方ただの一度も見たことがないのが実情である。

当サイトの記事は意外にもプロの方々にも読まれている様だから、その筋の方々で もしご存じの方が居たらご教授頂きたいのだが、効率面でスカラパラレル機が ベクトルパラレル機に2倍以上の効率で勝てるアプリ は存在するのであろうか?  可能性のあるものとしては、暗号解読等の整数系演算位しか思いつかないのだが... (ただし、科学技術計算であり、元文献を提示できるものに限らせて頂きます。)

☆実アプリケーションでの真実   
TOP500ではなく、実アプリケーションでの性能はどうかというと、 これは論文の一節を引用するだけですべてを語れるだろう。

すなわち...

「Overall results show that the ES vector system achieved excellent performance on our application suite- the highest of any architecture tested to datc - demonstrating the tremendous potential of modern parallel vector systems.」

要するに実アプリでは地球シミュレータがまだまだ世界一である分野は 数多くあり、 TOP500というスカラパラレル機に有利なベンチマークで世界最速ではなくなっても、 まだまだその能力は健在であるという事が上記の一文から明白 であろう。 (特に流体コード系では今でも事実上の世界最速であることは間違いないと思う。)

もう一点だけ追加するとすれば、Blue Gnen/Lで世界最速になったIBMが、 次世代機から疑似ベクトル方式を採用する計画である事がすべてを如実に語っている。

Blue Gnen/LがTOP500で世界最速になったことで、このような物量作戦的 スカラパラレル方式の優秀性を示すことが出来たのならば、 当然次世代機もこの方式を継承するべきだろう。

しかし、スカラパラレル方式を捨てて疑似ベクトルパラレル方式に転向するとすれば、 いくら疑似ベクトルプロセッサの内部がスカラプロセッサの組み合わせで出来るからと言っても、 当のIBMがベクトル方式の優秀性を認めたに等しい出来事である。

ローレンス・バークレイ国立研究所とプリンストン・プラズマ物理研究所は その筋では知らぬ者のない世界的に権威ある研究所である。 この分野の専門家がこのような結論を出した以上、 今後のスパコンの方向性はTOP500の結果から導き出される方向性とは 異なる方向が正解である事を示していると考える。

科学技術計算に限れば、やはりベストなアーキテクチャはベクトル方式である と考える。 今後は疑似ベクトル方式やGPUを使ったベクトル方式に転向するスカラパラレル機が 数多く現れると当サイトでは予想する。 それでも、純粋スカラパラレル機がますます繁栄するようであれば、 それは当サイトの予想ミスということになる。 今後の推移を注意深く見守ってゆきたい。

以上が、TOP500でのスカラパラレル機の首位奪還にかかわらず、 当サイトが時代の流れはベクトル方式に傾きつつあると考える所以である。

もしスカラパラレル機がベクトルパラレル機に勝とうと思ったら、 やはり効率差を承知の上で物量で押し潰す形になるのだろう。だが、 アルゴリズム面での改良無しには並列性の壁を乗り越えられないだろうし、 それはBlue Gnen/Lで主張されている省電力性を全く生かせない方向性であろう。

今回の論文を読んで一番印象に残ったのは、 (PARATECの様にスカラパラレル方式でも効率の落ちにくい問題を例外とすれば) 多くの科学技術計算でスカラパラレル機の効率が10%にも届かなかった事だ。 LINPACKの結果と比べてあまりにも差が大きすぎると思うし、 科学技術計算に限ればやはりベクトル方式は優秀であるという事が理解できた のは大きな収穫である。

今日は事実上の今年最初のコラムなんで、与太話を少な目にして、 まじめに書いてみました。


●補足追加(2005/1/27)

じつは完全勝利だった地球シミュレータ
前回、地球シミュレータについて書いた本コラムについて、 その筋のプロからご指摘があったので1章を補足して追加したい。

ご指摘事項であるが、前回のコラムの元論文にはアップデート版が存在する、 というご指摘である。実際の学会SC2004では、今回の元論文ではなく アップデート版のデータに基づいて発表が行われたとの事だ。 (ただし、この最新データはまだ論文化されていないようだ。)

大きな相違点は下記の通り。

前回のコラムでは地球シミュレータの性能の内で、 GTC(磁気閉じこめ型核融合炉シミュレーション)において、CrayX1に対して唯一 黒星があると書いた。 地球シミュレータは効率面ではGTCにおいても最優秀だったが、 CrayX1は単体プロセッサ性能が地球シミュレータより高いために、 同一プロセッサ数での実測性能では唯一勝てなかった相手である。

この原因は、地球シミュレータにおいてメモリバンクコンフリクトが発生している ためであると論文では示唆されていて、評価測定者の日本滞在期間が短かったため 完全な最適化を行うことができなかったと書いてある。 つまり、完全な最適化を行う時間的余裕があれば、効率が上がることで CrayX1に勝てる可能性があったという点を上記で指摘した。

論文のアップデート版では科学者が再来日して、まさにこの点について最適化を 行ったようだ。その結果、地球シミュレータの効率は20%まで改善され、 これによりCrayX1を抜いてGTCでも勝利を収めることができたとのことである。

GTC プロセッサあたりの性能
Gflops/P
実効効率 対CrayX1性能比
(同一プロセッサ数時)
最適化前 1.25 16% 0.9倍
最適化後 1.56 20% 1.1倍

ちなみに、単体プロセッサ性能であるが、 地球シミュレータは8GFLOPSでCrayX1は12.8GFLOPSである。 論文を読むと、ベクトル・スカラ性能比 (ベクトル化率に関するアムダールの法則に関係し、 アプリによっては速度の支配要因になる。) のバランスが地球シミュレータに比べると良くないとか、 スケーラビリティーの点で地球シミュレータに劣るとか、 いくつかのボトルネックを抱えるCrayX1であるが、 プロセッサ単体でのベクトル性能面では非常に優秀な機種である ことは確かだ。

当サイトも、スパコンでは単体プロセッサ性能が高いことが必須であると 以前から考えてきたので、プロの指摘にもあったがCrayX1はこの点では 確かに優秀な機種であると賛辞を送りたい。 (ただし、総合性能では地球シミュレータに負けているので、 スカラ性能やネットワークトポロジ面での改良が必要だろう。)

さて、話を戻すが上記の表をご覧頂ければ分かるが、 地球シミュレータの効率がコードの最適化により16%から20%に向上。 これにより、プロセッサ性能のハンデを乗り越えて 実効性能でトップに立った。(同一条件でのCrayX1の効率は11%で、 プロセッサ1個あたりの性能は1.36Gflops/Pである。) その結果、唯一の黒星であったGTCでの対CrayX1性能が白星に変わったのである。

と言うわけで、同一プロセッサ数での性能比較では地球シミュレータは 16戦16勝無敗となった。 効率面での性能比較では元々16戦16勝無敗であったから、 結果として32戦32勝無敗の戦績となった。 野球で言えば完全試合だし、 チャンピオン・ボクサーでもこんなすごい戦績の奴は滅多におらんやろな。

この対戦成績を指摘するだけで、もはや多くを語る必要はないであろう。 地球シミュレータの完全勝利である。

最後に、ご指摘いただいたプロの方にはお礼を申し述べておきたい。 ご指摘ありがとうございました。


●補足追加(2005/3/14)

引用論文の性格について
本件の引用元論文について一部説明不足な点があったようなので、 誤解を招かない様に説明を追加しておきたい。

原著論文のIntroductinを読んでいただければわかるが、 ここで引用した論文は、コンピュータサイエンティストによって 最新のベクトル型スパコンを評価することが目的で書かれたものである。 その意味で、この論文は単なるユーザーレポートではない ことにはご注意いただきたい。

特にfirstauthor(筆頭著者)のOliker先生のご専門はコンピュータ工学であり、 物理学者でも化学者でも天文学者でもない。 もちろん、コンピュータに関してはプロ中のプロである。

Oliker先生の問題意識は、スーパースカラアーキテクチャの理論ピーク性能と 実効性能の乖離問題を解消するのにベクトルプロセッサが有効かどうかを 実アプリケーションで確認したかったという点にある。 つまりこの論文は、コンピュータサイエンティストがベクトル型スパコンの 実性能調査目的で書いた論文なのである。 (各シミュレーションプログラムは、 そのための一種のベンチマークとしての位置づけである。)

またコストに関してであるが、この論文の結果では 地球シミュレータは同一プロセッサ数において スカラパラレル機より最低でも平均4.8倍高速であるという結論である。 ここで「プロセッサ数が4.8倍多いスカラ機の価格が 同一性能のベクトル機より安く済むか?」 という問題をお考えいただければ幸いである。 同一プロセッサ数でのスカラ機(クラスタ機)の価格は確かに安いが、 ベクトル機の演算効率がここまで高いとなると、 価格性能比で比較した場合は一考の余地がある。

参考までに、同一プロセッサ数での地球シミュレータの性能が 各システムの何倍になるかを4つの実アプリの平均値で示しておく。

同一プロセッサ数での地球シミュレータの性能アドバンテージ
Power3クラスタ比 Power4クラスタ比 Altix CrayX1比
23.3倍 7.1倍 4.8倍 2.6倍

詳細については、元論文の在処がリンクしてあるので、 原著論文をお読みいただければおわかりいただけると思う。



今回使用した図や表の元データですが、下記からの引用です。
Scientific Computations on Modern Parallel Vector Systems

補足のGTCに関するデータはSC2004の発表時データからの引用です。