HPC向けベンチマークを考えるBoFに参加して思ったこと

株式会社フィックスターズ

𠮷藤 尚生 (@LWisteria)

SC18勉強会()

概要

注意

本内容は、BoFを聴講した作者個人の理解および感想であって、BoFの発表者である先生方や作者の所属機関の見解ではありません

間違ってたらすみません・・・

自己紹介

Online ID: @LWisteria
名前
𠮷藤 尚生 (YOSHIFUJI, Naoki)
所属
株式会社フィックスターズ ソリューション事業部リードエンジニア
専門分野
土木工学・計算力学
水理学・海岸工学・河川工学
GPGPU, HPC, CAE
SC参加歴
2回目(SC16, SC18)

なにしにSCへ?

前回:SC16
ワークショップで発表
Implementation and evaluation of data-compression algorithms for irregular-grid iterative methods on the PEZY-SC processor
今回:SC18
遊びに
情報収集&日本に持ち帰って社内等へ共有

今日取り上げるセッション

Pros and Cons of HPCx benchmarks(HPCxベンチマークの賛否)

https://sc18.supercomputing.org/presentation/?id=bof107より引用

BoFの概要

Birds of a Feather発表者たちの自由討論会みたいなもの

発表者(敬称略、発表順)

  • 平木 敬(東京大学)
  • ウォルター・リウン(SURFsara, PRACE)
  • 牧野 淳一郎(神戸大学・理化学研究所)
  • エリック・ストローマイアー(ローレンス・バークレー国立研究所)

各発表者のスライドは牧野研のページにある

BoFの内容

Andoさんの記事読んで!!

https://news.mynavi.jp/article/sc18_bof107-1/より引用

ご清聴ありがとうございました

目次

  1. 概要
  2. BoF紹介
  3. 私見と感想
  4. まとめ

BoF紹介

目次

  1. 概要
  2. BoF紹介
  3. 私見と感想
  4. まとめ

以下

各発表者の内容を(勝手に)まとめて紹介します

それぞれを時系列で知りたい人はAndoさんの記事を参照してください

今のHPC・スパコン向けベンチマーク

主に話題に上がっていたものは以下

  • Linpack, HPL, Top500
  • HPCC
  • NPB
  • SPEC
  • UEABS
  • HPCG
  • HPGMG

Linpack, HPL, Top500

n次元密行列のLU分解による
線形方程式求解のFLOP/sを測定

  • Linpack (1979):最初の実装 in FORTRAN
  • High Performance Linkpack (1991):
    スパコン向けに書き直した in C言語
  • Top500(1993):ランク付け開始(今に至る)

全てのHPCベンチマークの原点
議論もここから出発する

HPLの問題点

1991年にNPB<を作った頃からLinpackは
実アプリと合ってない」と言われていた

その理由は、ストローマイアー先生まとめ:

  • 浮動小数点演算に偏りすぎB/F=O(1/n)
  • 今のアプリは(もう)HPLっぽくない
  • 直感的な感覚と順位が合ってない
  • HPL特化機が簡単に作れてしまう

なぜまだHPLが使われるのか?

いろんな計算機に適用しやすいから

  1. 「解くべき問題」だけが決まっている
  2. ソースコードやアルゴリズムが変更化(演算量さえ変わってなければ)
  3. 問題規模を、計算機に合わせて変更化
  4. 出てくる性能がシステム規模に正相関するので、全系の測定が重要
  5. 3,4から、システム規模を変えた時の性能が推測しやすい
  6. 多くの場合DGEMMだけが問題になっているので高速化対象が分かりやすい(一部のメニーコアなアクセラレーター除く)

ではどうするのか?

  • A. HPLだけを使い続ける
  • B. 新しいベンチマークを作る
  • C. HPLを含めた複数指標

B. 新しいベンチマークには何が必要?

HPLの良いところは引き継ぐ
  • 問題規模が可変
  • 性能はシステム規模に応じて上がる
  • ハードウェアの性能が点数に直結しやすい
  • 最適化の余地がある(コードやアルゴリズムは固定しない)
HPLを補間する
  • 演算律速ではない
  • Top500の順位とは異なる結果
  • ベンチマーク特化機が作りづらい

HPCx候補

HPGMG
多重格子法によるポアソン方程式求解
Vサイクルによって、1ベンチマーク中で問題規模が変わるのが特徴
HPCG
多重格子法前処理付共役勾配法による熱伝導方程式求解
HPLの疎行列版
MGも集団通信も浮動小数点演算もある
受容されつつある・・・?

HPCGとHPGMGは何を測る?

B/F性能を測る
→実用的に重要であるメモリ帯域性能を表す

ストローメイヤー先生のスライドより引用(重要な図なので後で自分で作り直したい)

B/Fを上げれば良いのか?

違う:遅い(Fが小さい)と良くなってしまう

(既にそういうプロセッサーが生まれつつある、電力効率的な意味で)

「性能評価の『最大主成分』を演算性能とすれば、
B/Fは『他の主成分』として使うべき」
(ストローメイヤー先生)

アプリ性能は何に律速するのか?

現代計算機は複雑なので1つに決められない

  • 整数・浮動小数点演算
  • レジスタ数
  • キャッシュ量、幅、階層深さ
  • DRAM
  • ファイルI/O
  • ネットワーク

京やポスト京の経験から、どれかに絞るのは難しい

複数ベンチマークをまとめる

1指標では無理
→想定アプリのベンチマークを複数まとめればいい

  • NASA Parallel Benchmark (1991)
  • HPC Collections (2005)
  • など...

→廃れた

「今」を測れても、将来を測れないから

指標を組み合わせる

HPL性能=f
HPLで測定できない指標を取るベンチマーク性能=x

x/fが大きいベンチマークが良い。が・・・

  • ハードウェア的にはx/fを上げると消費電力が上がる
  • xが難しいので手法を改良して必要x/fを下げようと頑張るのがHPCアルゴリズム研究者の意義

「今ほしい計算機」を調べたい?

計算機の調達、借りる計算機の選定・・・

複数ベンチマークをまとめるやつが適している

  • UEABSなど

「今すぐに必要な」アプリ性能を見れるので

私見と感想

目次

  1. 概要
  2. BoF紹介
  3. 私見と感想
  4. まとめ

私見

  • HPLにはHPLの良さがあり、これからも続けるべきベンチマーク
  • 「実アプリ性能」を測るベンチマークは難しい
  • 必要なアプリケーションは時代によって変わるので、実アプリ性能をベンチマークの指標にすべきではないのでは
  • アプリケーションによって測定できるハードウェアの何かの性能をベンチマークする
  • 現時点では「HPLとHPCGの間」というドンガラ先生の趣旨で良さそう。

感想

  • 英語難しかった・・・(平木先生の英語が一番聞き取りやすかった)
  • 紹介しなかったが、SCは展示もとても面白い
  • JFK記念館は期待以上に良かった
  • ダラスのバッファロー肉ステーキはうまい

まとめ

目次

  1. 概要
  2. BoF紹介
  3. 私見と感想
  4. まとめ

まとめ

  1. HPLに代わるベンチマークはない。これからもHPLが使われる意味はある
  2. 実アプリ性能を表す魔法のベンチマークもない
  3. HPLの良いところそのままに、HPLが計測できない指標のベンチマークが必要
  4. HPCGがB/Fを測定できているので、候補?

SC楽しい&有意義なので、みんな行きましょう!!

return 0;

Thanks @vincent.dieckhoff for helping my English listening