SC18において、「スパコンまるでわからん」というBoFが行なわれた。BoFというのはBirds of a Featherの略で、元の意味は同じ種類の羽を持つ鳥の群れであるが、転じて、同じことに興味を持つ人の集まりを指す。
SCのBoFは、例えば数人が自分のポジションを説明してから、参加者全員で議論をしたりする。この場合はパネルディスカッションと同じであるが、パネルディスカッションはSCのプログラム委員会がテーマを選定して正式のプログラムとして実施するが、BoFはその時間に会議室を使うことが許可されているだけで、どのようにやるかはBoFの主催者が決めるという点が異なる。
また、正規のプログラムも複数のセッションが並列に行われるが、同時に開催されるのは4つとか5つのセッションである。しかし、BoFは20個くらい並列に開催されるので、興味を引くような内容でないと人が集まらないという違いがある。Top500 BoFのように基調講演と同じ大ホールを使い、基調講演並みに人が集まるBoFもあれば、主催者側の身内を除けば10人、20人という寂しいBoFもある。
そのような中で、東大の平木敬 名誉教授が「Pros and Cons of HPCx Benchmarks」というBoFを開催した。パネリストは、平木先生、ヨーロッパのPRACEのベンチマークアクティビティのリーダーであるWalter Lioen氏、神戸大学教授で理研R-CCSの粒子系シミュレータ研究チームのチームリーダーの牧野淳一郎氏、Top500委員会のメンバーでLawrence Berkeley国立研究所のEric Strohmaier氏である。
趣旨は、HPCxという名前のベンチマークがいろいろとあるが、それぞれの長所、短所は何かという議論をする場で、平木先生と牧野先生は「スパコンまるでわからん」と大書したTシャツで登場した。なお、平木先生も牧野先生も専門家で、スパコンがわからない訳はないのであるが、色々な違いがある各種のスパコンの性能をどのように評価するのが良いのか、「まるで分らん」とおっしゃっているのである。
スパコンの性能比較はどうするのが良いのか
最初に平木先生が、このBoFの趣旨を説明した。アーキテクチャの論文ではSPEC CPUintは標準的なベンチマークで、論文を書く場合には、SPEC性能を評価していることは必須となっている。古いベンチマークであるがDhrystoneでさえ、まだ、役に立っている。しかし、これらのベンチマークはスパコンでは用いられていない。
スパコンの性能はどんどんと向上して行き、それを測定するため、色々なベンチマークが作られた。Top500で使われているLinpackは悪いベンチマークではない。特に長期にその性能が測られており、時系列で比較できるところが良いところである。HPCCは測定結果の数値が多すぎる、重複があるなどが問題である。HPCCに含まれているDGEMM、FFT、Streamは有用である。そして、HPCGがどんな意味をもっているかの議論が、このBoFのトピックの1つであると述べた。
HPC向けのスパコンと言ってもベクタ方式、共通メモリ、分散メモリ、SIMD、GPGPUなど各種の異なるアーキテクチャのものが存在する。これらの性格の違うマシンの性能をどのように比較するのが良いのであろうか?
そこで、このBoFでは、Exa Flops機の開発に使うには、あるいはZetta Flops機の開発に使うにはどのようなベンチマークを使うのが良いのか? さらに量子コンピュータの性能の比較はどのように行えばよいのかを議論したいと切り出した。
最初にポジショントークを行ったのはPRACEのWalter Lioen氏である。PRACEはヨーロッパの25か国が参加するコンピュータの発展を推進するNot-for-Profitの団体で、会員の拠出とECの色々なプロジェクト予算で活動している。
そして、コンピュータの開発や調達のためのUnified European Application Benchmark Suite(UEABS)を作っている。現在のUEABSにはALYA、Code_Saturne、CP2K、GADGET、GENE、GPAW、GROMACS、NAMD、NEMO、PFARM、QCD、Quantum Espresso、SHOC、SPECFEM3Dなどのプログラムが含まれているという。
そして、これらのベンチマークプログラムには計算規模の異なる複数のテストケースが含まれている。
そして、システムの調達に当たっては、そのスパコンがどのように使われるかを詳細に調査し、7種の最も良く使用されるアプリケーションの性能、TCO当たりのスループットなどを比較して最も効果の大きいシステムを調達する。
これは大型のスパコンを調達したり、新たに次期Exa Flopsのスパコンを開発する場合にどの候補が良いかを評価するときの標準的なプロセスであるが、例えばTop500のように多数のシステムの性能を測定しようという場合には手間が掛かりすぎるし、時代が下ってスパコンの性能が上がると、それに合わせて問題規模も大きくする必要があるが、問題を変えてしまうと測定された結果の比較ができなくなるという問題が出てくる。
このBoFでは、新しいベンチマークがTop500にどのような意味があるのか? アプリケーションのスループットとピークスピードをどう評価するのか? アプリケーションを単純化した合成ベンチマークが使えるか? 本物のプログラムでスループットを測定すべきかを議論したいという。
(次回は12月5日に掲載します)