スーパーコンピュータ(スパコン)のベンチマークでは、Top500で使われているLINPACKが有名であるが、LINPACKは演算量の割にメモリアクセスや通信が少なく、スパコンの一部分の性能しか評価していないという問題が指摘されている。これを補う目的で開発されたベンチマークが「HPC Challenge」である。

HPC Challengeはスパコンの性能をより多面的に測定するため、7種の測定プログラムを実行させる。例えば、システム1はAのプログラムの実行は速いが、Bのプログラムの実行は遅い。一方、システム2はAが遅く、Bは速いというような結果となると、一概にどちらのシステムが速いとは言えない。このため、HPC Challengeの7プログラムの測定結果を総合して、システムのランキングを行うことはできない。自分が使用するアプリケーションの特性と近い性質をもつHPC Challengeのベンチマーク性能はスパコンシステムを選択する場合には役に立つ情報であるが、Top500のように1位、2位…500位というランキングができないので、HPC Challengeはマスコミ受けが悪い。

HPC Challenge BoFを主催するJack Dongarra教授

次の図はスパコン内部のメモリ階層を示すもので、一番上から順に、レジスタ、キャッシュ、ローカルメモリ、リモートメモリ、ディスクとなっている。ここで、ローカルメモリは計算ノードの中のメインメモリで、リモートメモリはInfiniBandなどのインタコネクトで結合された他の計算ノードのメインメモリという位置付である。

HPC Challengeの主要4ベンチマークプログラムの性能測定箇所

Top500のLINPACKとほぼ同じであるHPL(High Performance LINPACK)はレジスタとキャッシュ間のデータ転送性能がネックとなるので、主にこの部分の性能を測定していることになる。STREAMはローカルメモリとキャッシュの間のデータ転送速度がネックとなる。フーリエ変換を行うFFTはリモートメモリからローカルメモリへの転送バンド幅がネックとなる。また、RandomAccessはリモートメモリからローカルメモリへの転送レーテンシが性能に大きく効いてくる。このようにそれぞれのベンチマークはメモリ階層のそれぞれの部分の性能を測定するようになっている。

前述のようにHPC Challengeベンチマーク全体でのランキングはできないのであるが、HPC Challengeでは、クラス1とクラス2という2つのカテゴリで表彰を行う。クラス1は、上記の4種のベンチマークプログラムごとに1~3位を表彰する。そして、クラス2はプログラムの簡潔さと性能のバランスを審査員が評価するもので、簡潔さの評価には主観がはいる。

昨年(2011年)のHPC Challengeのクラス1では、4種のプログラムすべてで京コンピュータが1位を独占した。今年は、京コンピュータは、 HPLでは昨年の2118TFlopsから9796TFlops、STREAMでは812TB/sから3857TB/s、FFTでは34.7TFlopsから205.9TFlopsと大きくスコアを伸ばし1位をキープした。

RandomAccessに関しても京コンピュータは、昨年の121GUPSから472GUPSと約4倍にスコアを伸ばしたが、Top500では10位のIBMのPOWER 775システムが2021GUPSという驚異的な性能を達成し、京コンピュータは2位となった。

HPL、STREAM、Random Access、FFTの4種の主要ベンチマークの1~3位

クラス2に関しては、次の図のように4者の応募があった。簡潔なプログラムを書くため、各応募者とも超並列処理向けに開発している言語を使っており、CrayはChapel、IBMはX10、筑波大はXcalableMP、UIUC(イリノイ大アーバナシャンペーン校)はCharm++言語を使っている。

クラス2には、Cray、IBM、筑波大、イリノイ大の4者が応募

各参加者が上の図に書かれた5種のプログラムの構造やプログラムの行数、性能などを約10分の持ち時間で発表を行い、10人の審査員が評価スコアを投票して優劣を決める。

その結果、達成した性能の点でIBMのプログラムが最優秀、プログラムのエレガントさの点ではCrayが最優秀として表彰された。