今回は、スパコンの性能ランキングを行うTOP500リストの50回目の発表であった。これを記念して、主催者であるJack Dongarraテネシー大教授、ローレンスバークレイ研究所のErick Strohmaier氏とローレンスバークレイ研究所の所長代理のHorst Simon氏が講演を行った。
TOP500リストは、毎年6月と11月の年2回の発表であるので、25年が経過したことになる。進歩の速いコンピュータの世界で、同じベンチマークが25年継続して使われているのは珍しい。
Dongarra教授の語るTOP500の歴史と意義
まず、Dongarra教授が登壇してTOP500の歴史と現在の問題点について講演した。
TOP500では連立一次方程式を解くLINPACKというプログラムを実行する時の性能を競う。なお、現在ではLINPACKが改良されたHPL(Hight Performance LINPACK)というプログラムが使われている。
LINPACKは、アルゴンヌ国立研究所のJim Pool氏が、1974年6月に線形代数を扱うライブラリを検討する非公式なミーティングを開催したことに端を発する。このグループは1975年2月にも会議を行い、1976年6月には最初のドラフトが作られた。そして、1977年6月にテスト版のソフトウェアが作られ、LINPACKのユーザーズガイドが作られた。
次の図の右下に写っているのが1977年の最初のベンチマーク結果。2017年11月現在、TOP500で1位の太湖の光スパコンは1200万元の連立一次方程式を解いているが、この当時は100元の連立一次方程式を解いていた。LINPACKの計算量は元数の3乗に比例するので、神威・太湖之光は当時の1.7ペタ倍の計算を行っていることになる。
左の写真はLINPACKの開発者で、左から2人目がJack Dongarra教授。上の写真は1979年当時、下の写真は2013年のものである。
最初は100元の連立一次方程式を解いていたが、コンピュータの性能が向上するのに伴い、1000元の連立方程式を解くように変更され、1989年には任意のサイズの元数を使って良いというルールに変更された。元数が大きい方が、相対的にメモリアクセス回数が減り、高い演算性能を得やすいので、現在では、メモリ容量の許す限り大きな元数の連立方程式を解くのが一般的になっている。 そして、2000年には計算方法を最適化し、並列コンピュータでも使えるようにしたHigh Performance LINPACK(HPL)が開発され、現在ではHPLによるベンチマークが行われている。
一方、ドイツではHans Meuer(ハンス モイヤー)教授が、1986年にISCの前身であるMannheim Supercomputer Seminarを始め、スパコンの市場規模を調べるため、あちこちに設置されているスーパーコンピュータのリストを作成して発表していた。
1980年代にはCray、富士通、NEC、日立のベクトルスパコンの出荷台数を把握していればよかったのであるが、1990年ころになると、小型のベクトルスパコンや並列スパコンが多数出てきて把握が困難になってきた。
そこでMeuer教授は、Dongarra教授に、両方のリストをまとめてTOP500を作ることを持ち掛け、最初のTOP500リストが1993年の6月に発表された。まったく目的の違う2つのリストを一体化してTOP500が生まれたわけである。なお、Erick Strohmaier氏はMannheim大のMeur教授のもとで第1回のTOP500リストを作った人である。
この最初のTOP500リストの1位はロスアラモス国立研究所のCM5スパコンで、LINPACK性能は59.7GFlopsであった。現在の1位の神威・太湖之光スパコンは93PFlopsであり、おおよそ150万倍の性能となっている。
LINPACKによる性能測定が広く使われるようになった1990年代初頭には、LINPACKで測定した性能と多くの科学技術計算の性能には強い相関関係が見られた。そして、コンピュータメーカーは、LINPACK性能を高めることを目標にして開発を行っていた。
Dongarra先生の反省
しかし、HPLには問題がある。現代では大規模アプリケーションの性能とHPLの実行性能にはそれほど強い相関関係が無くなってきてしまった。特に、偏微分方程式を解くタイプの計算でその傾向が強い。
このため、HPL性能向上を目指した設計を行うことは、実際のアプリケーションの性能を上げるのには役に立たない悪い設計になりかねない。HPLでExaFlopsの性能を持つコンピュータは、実際の計算ではあまり役に立たないコンピュータになってしまうかもしれない。
HPLの良いところは、実行が簡単で、理解しやすく、計算結果のチェックも容易であることである。また、歴史的な長期間にわたる性能データベースがあるという点も良い点である。HPLは浮動小数点演算ハードウェアに負荷をかける計算を行っており、前に述べたように、HPLで高い性能が出るから実際の計算でも高い性能が得られるとは限らないが、HPL性能が低い場合は、実際の計算でも性能が低い可能性が高いという相関はある。
LINPACKベンチマークは40年前の技術である。LINPACKの計算は、O(n3)の浮動小数点演算とO(n2)のデータ移動を行うが、この特性は現在のアプリケーションの特性とはズレている。したがって、高いLINPACK性能を目指す設計は、実アプリケーションを高める設計にはならない可能性が高い。
また、LINPACKはスパコンの性能の一面だけを測定しているに過ぎない。1つの数字だけでのスパコンの機種選定は、誤った選択になってしまう。役に立たないベンチマークの測定に高価なコンピュータ時間を使うのは浪費であるとDongarra先生は言う。
しかし、実アプリケーションの特性とズレているというのが問題の本質で、それ以外は、どのベンチマークにも当てはまるものであり、LINPACKやHPLだけの欠点ではない。
HPLの非常にまずい点は、1つのデータポイントを与えるだけであり、スパコンのアーキテクチャ全体を測定していないことである。そのため、スパコンの設計のテクノロジやアーキテクチャの選択を誤らせる恐れがある。また、浮動小数点演算中心のベンチマークはビッグデータ処理などではあまり意味のないものである。
このあたりは同じ内容が繰り返されているが、Dongarra先生としては、それだけ強く訴えたいということであろうか。
HPL性能の向上だけを目指した設計をしてはならないというDongarra先生の指摘は正しい。TOP500がマーケティング的には成功しすぎて、世の中では、TOP500が唯一無二のスパコン性能のランキングと受け取られるようになっていることが問題であろう。
(次回は12月4日に掲載します)