スパコンの仕事といっても幅が広い。得意、不得意があり、どのような仕事をするかで性能は変わってくるので、それぞれの仕事の分野でベンチマークが作られている。有名なTop500は浮動小数点演算性能のベンチマークで、メモリアクセスが少なく演算が多い場合の性能を測っている。しかし、最近の巨大計算では疎行列を扱うことが多く、メモリアクセスの比率が高い。このため、Top500の中にHPCGというベンチマークが作られている。

これ以外にグラフ処理のベンチマークのGraph500、I/O処理のベンチマークのIO500があり、ディープラーニング用のベンチマークも開発中である。

巨大グラフの処理性能を測定するGraph500

このレポートの話題であるGraph500はグラフ処理の仕事のベンチマークである。グラフ処理が使われるビジネス分野であるが、次のスライドでは、サイバーセキュリティ、医療情報、ソーシャルネットワーク、データエンリッチメント、シンボリックネットワークを挙げている。

サイバーセキュリティでは毎日150億件ものログが生成され、それを繋ぎ合わせてスキャンする必要がある。医療情報処理では5000万人の患者の記録があり、それぞれに20~200レコードの診療情報がある。FacebookやTwitterなどのソーシャルネットワークが保持しているデータは膨大である。データエンリッチメントは、膨大なデータの中から有用な情報を選び出す仕事で、処理するデータ量はPetaByte級である。シンボリックネットワークの1つの例は人間の脳で、250億個のニューロンがあり、それぞれのニューロンが7000以上の接続を持っている。

これらの膨大なデータを処理するためには、個々のデータとそれらの関係を記述する必要があり、データ自体を頂点(Vertex)、関係を辺(Edge)としたグラフが使われることが多い。

  • ISC 2019

    グラフ処理が使われる5つのビジネス分野。膨大な量のデータとそれらの関係をグラフで記述して扱うことが多い (このレポートの全ての図は、ISC 2019のGraph500 BoFでの発表スライドを撮影したものである)

Graph処理のベンチマークであるが、まずは巨大なグラフを作る必要があり、この部分がカーネル1である。そして、BFS(Breadth First Search)という処理がカーネル2、SSSP(Single Source Shortest Path)という処理がカーネル3と呼ばれている。カーネル2のBFSのベンチマーク結果のリストの発表は今回で18回目であるが、カーネル3のSSSPのベンチマークの発表は今回が4回目である。SSSPのベンチマークは第1回は9エントリだけであったが、順調に増えており今回は22エントリとなっている。

  • ISC 2019

    グラフを作成する処理がカーネル1、BFSがカーネル2、SSSPがカーネル3である。カーネル2の性能は今回は18回目のリストであるが、カーネル3は2017年6月に追加されたもので、今回は4回目のリストである

BFSはスタート頂点に繋がっている全ての辺を調べて、繋がっている全ての頂点を知り、次はそれらの頂点から繋がっている全ての辺を調べるという風にして、グラフの全ての頂点に到達する経路を見つけるまでの計算時間を測る。

簡単なようであるが、京コンピュータが解いている問題はScale=40で、頂点の数が240、約1兆頂点ある。頂点あたりの辺の数は平均16本であるので、辺の総数は約8兆である。この8兆の辺のデータは、全ノードのメモリにランダムな順序で格納されている。さらに頂点の番号もランダムにつけられている。従って、目指す辺や頂点のデータがどのノードのどのアドレスのメモリにあるのかも分からず、膨大な数のリモートメモリのアクセスが必要になる。また、すでに通った辺を記憶して同じところを繰り返して通らないようにする必要もある。

そして、辺の総数を処理時間で割ってTEPS(Traversed Edges Per Second)を求める。

SSSPは、スタート頂点から、全ての頂点への最短の経路を求めるというベンチマークである。なお、SSSPではそれぞれの辺は長さを持っており、経路に含まれる辺の長さの合計が経路の長さとなる。

  • ISC 2019

    BFSは幅優先探索で、与えられたスタート頂点から全ての頂点に対して経路を見つけるという問題。SSSPはスタート頂点から全ての頂点に対して最短の経路を見つける。各辺には長さが与えられており、経路に含まれる辺の長さの合計が経路の長さである

このように、Graph500のベンチマークはTop500のベンチマークとはまったく性質の異なる処理である。処理を分担するプロセサ数が多いほうが性能が高いという点は両方のベンチマークに共通しているが、それ以外の点では一方のベンチマークの性能が高いからと言って他方の性能が高いとは限らない。

有終の美を飾った京コンピュータ

ISC 2019において、第18回のGraph500ランキングリストが発表された。前回に続いて1位になったのは日本の京コンピュータである。2011年6月にTop500の1位として登場した京コンピュータは、8年間現役システムとして稼働を続け、今年8月に富岳スパコンに場所を空けるために退役することになっている。

京コンピュータはGraph500では1位を守り続けたまま退役する。なお、京コンピュータはTop500でも、下がったとは言え20位で、現在でも大規模スパコンと呼べる。

10~20年前には、世界的にトップレベルのスパコンの更新周期は5年程度であった。当時は、5年もたつとスパコンの平均性能は30倍くらいに向上しており、Top500の1位で登場したスパコンも5年後にはTop500の下の方に残る程度の順位になり、その性能の古いスパコンは消費電力も大きいので、運用費用を考えると、新しいスパコンに入れ替えた方が安あがりであったからである。

しかし、デナードスケーリングの停滞からスパコンの性能向上が鈍化し、性能が30倍になる期間は10年程度に伸びてしまったのが、京コンピュータが8年間使われることになった最大の理由である。それにしても、京コンピュータはGraph500という国際的なランキングでの1位を維持したまま退役する初めてのスパコンであろう。

といっても、京コンピュータがGraph500に初登場したのは2013年6月のリストで、スコアは5524GTEPSである。これに対して2019年6月のスコアは31302GTEPSで、ハードウェアは変わっていないが約5.7倍に性能が向上している。これは九州大学の藤澤教授らのグループがアルゴリズムの改善を行い、コードのチューニングを繰り返してきた結果である。

  • ISC 2019

    第18回Green500の1位表彰を受ける理研R-CCS/九州大学の藤澤先生(右端)

次の図に第18回Graph500の上位10位までを示す。1位が京コンピュータ。2位が太湖之光、3位がローレンスリバモア国立研究所のSequoiaである。Top500で1位と2位のSummitとSierraはGraph500には顔を出していない。また、Top500で言えば国内1位のABCIがGraph500では22位、Oakleaf-fxは24位、高エネルギー加速器研究機構のSakuraが27位といったところで、Graph500で高い性能を出すのは容易ではないと思われる。

  • ISC 2019

    第18回Graph500のTop10。1位は京コンピュータ、2位は太湖之光、3位はSequoiaである