最近の話題 2012年7月21日

1.GPUスパコンの実アプリケーション性能

  2012年7月18日のHPCWireが,GPUアクセラレータを付けた場合の性能向上について報じています。3月のAccelerated Computational Science Symposiumでの発表とのことで,それほど最近のニュースではないのですが,興味深いので紹介します。

  GPU無のシステムはSwiss National Supercomputing CenterのMonterosaというCRAY XE6システムで,各ノードはAMDのInterlagosが2ソケットという構成です。一方,GPU付はORNLのTitanDevシステムで,各ノードは,Interlagos 1チップとNVIDIAのFermi GPUが付いています。

  11種の実用アプリケーションを,それぞれにチューニングした形で,性能を比較したのが次の表です。

Application Performance Software Framework
 
XK6 vs XE6
S3D 1.4 OpenACC
 
Turbulent combustion
NAMD 1.4 CUDA
 
Molecular dynamics
CP2K 1.5  CUDA
 
Chemical physics
CAM-SE 1.5 PGI CUDA Fortran
 
Community atmosphere model
WL-LSMS 1.6  CUDA
 
Statistical mechanics of magnetic materials
GTC/GTC-GPU  1.6  CUDA
 
Plasma physics for fusion energy
 SPECFEM-3D  2.5  CUDA
 
Seismology
 QMCPACK  3.0  CUDA
 
Electronic structure of materials
 LAMMPS  3.2  CUDA
 
Molecular dynamics
 Denovo  3.3  CUDA
 
3D neutron transport for nuclear reactors
 Chroma  6.1  CUDA
 
Lattice quantum chromodynamics

 S3DやNAMDのように1.4倍というものから,Chromaの6.1倍まで幅がありますが,いずれもGPUを付けた方が速くなっています。Intellagosチップと比べると,NVIDIAのM2090の消費電力は2倍程度ですが,CPU以外の消費電力があるので,性能向上が1.4倍ならエネルギー効率は改善されていると思われます。

 また,TitanDevシステムではM2090ですが,本番のTitanではKeplerベースのK20になるので,性能向上は更に大きくなると予想されます。

 大部分のアプリはCUDAで書き直されていますが,S3DはOpenACCを使い,ソースにディレクティブの追加という比較的手間の少ない方法で作られています。また,CAM-SEもFortranソースをPGIコンパイラでコンパイルということで,これも手間の少ない移植と思われます。

2.巨大スパコンは必要か?

  2012年7月19日のHPCWireが”Too Big to FLOP”と題する記事を載せています。

  次の,Top500 1位のマシンのインフレ率調整済みの推測コストの表から,

  

  これらのシステムのコストをプロットしたのが次の図です。ここには$210M〜230Mと推定されるSequoiaもプロットされています。これらの全部のシステムを考慮したコスト傾向を示すのが赤の線で,割高のCDC600とK Computerを除いたのが青の線です。

  

  そして,この傾向を延長すると2030年の1位のシステムは$0.5Bという巨額になると予想されます。なお,K Computerの$1.25Bはハードとコンパイラ,OSなどの開発費と神戸のセンターの建物を含んだ額で,ハードウェアの調達予算は600億円程度の筈です。それでも80円/$で換算すると$750Mとなります。

  しかし,これらの巨大スパコンを丸々占有して使うのはTop500LINPACKの測定くらいで,通常の使用状況では,システムを分割して,それぞれのユーザはもっと小さなマシンを使っている。そして,ユーザは大きな計算リソースが与えられれば,それを使うが,現在,手に入るリソースでは研究ができないと不満を持っているという状態でもない。

  したがって,高価な巨大マシンを作る必要があるのかという懸念を表明しています。

  これは一理あるのですが,現代の巨大マシンはクラスタ型で,巨大にするためのオーバヘッドはインタコネクトです。京やBG/Qを見ても,コストにインタコネクトの占める割合はまあ,2割程度で,3割は超えないと思います。そして,1/16の性能のマシンを16台作る場合も,このインタコネクトが不要になるわけではなく,同程度のコスト化,若干,スイッチが小さくなって安くなる程度で,Flopsあたりの単価が大きく下がるとは考え難いと思います。

  それならば,通常は襖で区切って小さな座敷の集合として使うけど,必要なら,襖を取り払って大広間にもできるという方が,有用性が高いと思います。実際,旅館の大広間や,ホテルのボールルームは仕切りの取り外しができます。

  一方,巨大システムを作るとなると,消費電力や信頼度(平均故障間隔)が大きな問題となり,電力削減,信頼度向上などの技術の開発が進みます。これが1/16の規模のシステムで良いとなると,現状の技術を少し改良すれば済むということで,進歩のスピードが鈍るのではないかと懸念されます。

  確かに$500Mという予算の獲得は難しいのですが,1/16の規模で$30Mのマシンなら16台の予算が取れるという話でもないと思います。

  信頼度に関しては,過去の1位マシンのLINPACKの実行時間の表と,そこからの傾向のグラフを載せています。

  LINPACKは連立1次方程式を解くという問題ですが,方程式の未知数の数の3乗に比例して計算量が増えます。一方,メモリのR/Wは2乗の増加なので,未知数を多くした方がメモリアクセス比率が減り,演算性能が出せます。そのため,持てるメインメモリをフルに使って未知数の多い巨大問題を解くということになります。スパコンのメモリ量はピークFlops比例ほどは増えない傾向にありますが,それでも1乗の違いがあるので計算量が増え,LINPACKの実行時間が長くなるという傾向にあります。

 そして,この傾向を延長すると,ExaFlopsマシンでは5.8日かかると予測しています。LINPACKの測定では,色々とチューニングパラメタを変えて測定して,Top500に登録するベストの測定値を得るので,仮に10回測定としても,一回に6日では,60日マシン全体を占有することになります。また,測定中に故障すると,やり直しになるので,更にランの回数が増えます。ということで,1回で5.8日もかかる測定は,事実上,やれません。

 Top500の主催者側も,問題であることは十分認識しており,6月のISC12で,Dongarra先生はReduced Linpack to Keep the Run Time Manageable for Future TOP500 Listsという提案を行っています。

3.忘れ去られたCPU黒歴史

  と題する本が,2012年7月10日にアスキー・メディアワークスから発売されました。著者はテクニカルライターの大原雄介さんです。私も早速,アマゾンでオーダーして買いました。

  黒歴史CPUは,技術的,あるいは商業的に失敗で,会社にも大きな損失を与え,その会社の歴史でも抹殺されようとしているCPUということで,他社にもたくさんあるのですが,この本ではIntelとAMDのプロセサを中心に取り上げています。

  IntelではTimna,iAPX432,i860,i960,Prescott〜Tejas,Xscale,Merced,AMDではAm29000,K6-V,K8,初代K10,そして組み込みのElanとGeodeが黒歴史として取り上げられています。更に,MotorolaのMC88100/88110が追加として取り上げられています。

  これらのCPUは開発が大きく遅延したり,消費電力が大きかったり,性能が出ないという技術的な失敗というものもありますが,Xscaleのように技術的には成功と言えるのに,他社に売却されてしまったという黒歴史もあります。このような失敗を学ぶことは,成功例を学ぶ以上に価値があるのではないかと思います。ただし,大原さんの失敗の原因の記述は部外者の見方で,当事者の見方と一致するかどうかは分かりません。

  個人的には,浮動小数点除算のバグで,$500Mというマイクロプロセサ史上最大のリコールを出したPentium Vなども黒歴史に入っても良かったのではないかと思いました。

  これらの黒歴史のプロセサでも,設計に携わったエンジニアは一生懸命努力していたことは間違いなく,商業的には失敗とは言え,これらのCPUの存在が歴史から抹殺されてしまうのは悲しいことです。大原さんもあとがきに書いておられますが,これらのCPUの墓碑銘としても意義のある本だと思います。

  しかし,この本に取り上げられたプロセサを知らないと,あまり興味が湧かないと思われるので,やはり,一部の読者向けかと思います。

  

 

 

inserted by FC2 system