HPC Challengeの走行とLINPACK性能

14日はHPC Challenge(HPCC)の走行で、17時30分が測定結果の提出期限である。このHPCCの測定で使ったシステム構成を、その後の実アプリケーションでの測定にも使うことが義務付けられる。しかし、LINPACKの性能はHPCCの中に含まれているHPLの値を使っても良いが、より高い性能を出すために、LINPACKだけはシステム構成を変えて測定しても良いことになっている。

昨年のSCCでは、テキサス大がLINPACKで1.07TFlopsを出して1位に輝いた。しかし、他の2大学も1TFlopsを超えるという激戦であった。今年は、さらにレベルが上がり、

  • 1位:1.926TFlops/Nizhni Novgorod州立大
  • 2位:1.840TFlops/国防科技大
  • 3位:1.836TFlops/清華大 

という結果となった。やはり、GPU 12台は威力があるが、6台のチームも肉薄している。

LINPACK最高性能の賞状を受けるNizhni Novgorod州立大のメンバー

なお、4位はGPU4台のボストン大の1.23TFlopsである。8チームの中でGPUを使っている4チームが上位を占めており、やはり、LINPACKではGPUが強いということを証明した形となっている。

実アプリケーションのスループット測定

各チームは、11月14日の17時30分にHPCCの結果を提出すると一息つくことになるが、2時間後の19時30分に実アプリケーションの入力データが配布される。そして、11月16日の18時の結果報告まで、ほぼ2昼夜連続の過酷なレースとなる。

今年のアプリケーションは、

  • 分子動力学シミュレーションを行うPFA
  • N体問題をSPHで解く宇宙シミュレーションのGADGET
  • ベイズ推定を使って生物の系統発生を求めるMrBayes
  • 海洋循環のシミュレーションを行うPOP

の4種である。

アプリケーションの処理内容を知らないとチューニングはできないし、効率の良い流しかたもできないということで、各チームはコンピュータサイエンスの学生だけではなく、これらのアプリケーションに専攻が近い学生をメンバーに入れるということを行っている。しかし、6人という枠があるので、これをハード、ソフト、アプリにどのように割り振るかもチームの能力に大きく影響する。

入力データはNFSで公開され、同時に全チームからアクセス可能になる。2日間では処理しきれない量の入力データが与えられるので、4つのアプリケーションをどのように動かすかも問題になる。クラスタ全体で1つのアプリケーションを動かすか、クラスタを論理的に分割して複数のアプリケーションを並列に動かした方がスループットが大きくなるかなどを判断して処理を進める必要がある。特に、一部の計算ノードだけにGPUが付いているような非対称のシステムでは、どのノードをどのアプリケーションに割り当てるのが良いかという問題もある。このため、学生は会場に泊まりこんで実行状況を監視し、制御したりする。そして、異常が発生すれば、すぐに対処することが必要となるので、交替で仮眠をとるという状態で競技が進む。

そして、11月16日の18時までにNFSに結果ファイルを格納し、この結果が所定の誤差の範囲に入っているかどうかを主催者が検査して正しく処理が行われたことを確認する。

最終的には清華大が1位を守った

今年のSCCの最終結果は、次のように発表された。

  • 1位:台湾の国立清華大
  • 2位:中国の国防科技大
  • 3位:テキサス大

ということで、Defending Championの清華大が防衛を果たし、今年も1位に輝いた。しかし、この1位から3位までのスコアは僅差であったという。

昨年に続いて総合1位に輝き表彰を受ける台湾の清華大のメンバー

GPUを使用した清華大や国防科技大がGPUチューニングに成功し高い性能を引き出したということと、同時に、GPUを使わないテキサス大がLINPACKではGPU組に及ばなかったものの実アプリケーションでは巻き返したというのも興味深い結果である。