HPC-Phys 勉強会・Bridge++ について報告
金森 逸作 (広島大学)「京からポスト京に向けて」シンポジウム
筑波大学東京キャンパス, 2019 年 1 月 10 日

はじめに
格子 QCD で使うプログラム•••

格子 QCD での計算: 配位生成 + 物理量測定（配位生成プログラム: 略）
物理量測定プログラム: 各人/グループ毎に様々既存のコードセットに手を加えて使うことも多い
石川コード, Grid, Chroma, Bridge++,...

ポスト京で走らせるコード•••

コデザインチーム謹製コード : 全てはカバーできない
手持ちのコードをチューニング : いつ、どこで、誰がどこでもそこそこ使えるコードを使う

個人でのコード開発: 大変•

コード開発に関する情報交換

HPC-Phys 勉強会「京からポスト京に向けて」シンポジウム 2019/1/10 金森逸作

2/8

QCD 共通コード Bridge++
プロジェクトメンバー: 青木慎也、青山龍美、金森逸作、金谷和至、松古栄夫、宮本貴也 、滑川裕介、根村英克、谷口裕介（ほか contributor 多数）••••

新学術領域研究「素核宇宙融合による計算科学に基づいた重層的物質構造の解明」（2008–2012）時にスタート
C++ object oriented, MPI + OpenMP
方針: 読みやすく、拡張しやすく、どこでも動いて、そこそこのパフォーマンス 場の定義に構造（color, spin etc.）がほとんどはいっていない
現在 version 1.4.4 （近日中に version 1.5 ）QCD 以外にも拡張が容易

拡張版

••
•

データ構造を柔軟に: GPU 機, SIMD 機
計算機毎に最適化の余地あり低レベル部分（＝計算機依存最適化）は容易に差し替え可
期待: 今のうちに手元の環境でコードを用意しておけば、ポスト京ですぐにそれなりのパフォーマンスで実行可能になるはず「京からポスト京に向けて」シンポジウム 2019/1/10 金森逸作

3/8

そこそこのパフォーマンス: Dirac 演算子と線形ソルバー
グラフ: I.K. and H.Matsufuru ICCSA2018 (doi:10.1007/978-3-319-95168-3 31) より

Oarkforest-PACS の場合: Intel Xeon Phi KNL
323 × 16 latt./node, single prec.
350

Clover matrix mult [GFlops/node]Wilson matrix mult [GFlops/node]Mult : GFlops/nodeWilson: & 220 (3.7%)
Clover: & 280 (4.7%)

300
250
200
150

roofline from MCDRAM BW
Wilson:424, Clover:506

100
1 proc./node (1T)
4 proc./node (1T)
32 proc./node (2T)
64 proc./node (2T)50
layout 1, w/ prefetch
01250

416

Wilson32
1
number of nodes

416

32

CloverClover matrix BiCGstab [GFlops/node]Wilson matrix BiCGstab [GFlops/node]

Solver : GFlops/nodeWilson: & 110 (1.8%)
Clover: & 140 (2.3%)

200

150

100

linear algebra requires
more BW

1 proc./node (1T)
4 proc./node (1T)
32 proc./node (2T)
64 proc./node (2T)50
layout 1, w/ prefetch
0
1

416

32

1416

32

number of nodes「京からポスト京に向けて」シンポジウム 2019/1/10 金森逸作

4/8

OFP 1 ノードだと、、、
通信は最小限、ローカル体積大 （どこまで速くできるか）※ ソルバー, mult 以外は目下取り組み中（＝もっともっと遅い）です
600

3performance of mult: 32 x64 latt. [GFlops/node]
w/ prefetch, layout 1500roofline
1T
2T
4T

400
300
200
100014
Wilson

14
Cloverproc.
/node

Wilson mult ∼ 450 GFlops (7.5%)
Clover mult ∼ 500 GFlops (8.3%)
さらに高速化するには、データ再利用の工夫が必要
cf. Grid v0.7.0: 1 node で Wilson mult が 340 GFlops(multiple r.h.s. だと 960 GFlops 出るらしい)「京からポスト京に向けて」シンポジウム 2019/1/10 金森逸作

5/8

HPC-Phys 勉強会

昨年の 6 月に企画を立ち上げました: ポスト京重点課題 9 と JICFuS で主催
前回のシンポジウム (2017/12) の際に一部の方に相談したものです

世話人: 青山龍美、大川博督、加堂大輔、金森逸作、土井琢身
アドバイザー: 青木慎也、石川健一、住吉光介、永井智哉、松古栄夫
あいおうえお順、敬称略

website: http://hpc-phys.kek.jp/
メーリングリスト: 参加は金森まで•

コード開発を横軸とした分野横断型の交流
実際にプログラムを書く物理研究者同士 + 計算科学の専門家の情報交換を目指す「京からポスト京に向けて」シンポジウム 2019/1/10 金森逸作

6/8

勉強会プログラムから可視化の話など単にコード開発以上の話題も取り込んでいます
第 1 回 8/22, 京大基研, 参加 27 名•••••

金森逸作: 趣旨説明、現在/近い将来使えるリソースのまとめ、アンケートの結果
中尾昌広: XcalableMP 入門
住吉光介: ボルツマン方程式による超新星のシミュレーション計算
松古栄夫: OpenACC で簡単 GPU 並列化— 格子 QCD と球対称超新星シミュ
レーションを例として
坂井涼: テンソル繰り込み群

第 2 回 12/1, 理研和光, 参加 29 名
• GPU チュートリアル: OpenACC 篇 (松古栄夫), CUDA 篇 (青山龍美)• 石川健一 : CUDA を用いた Pure SU(3) gauge theory のための Twisted
Gradient Flow 計算の加速• 滝脇知也 : 最近の粒子，流体の可視化事情• 金森逸作 : Intel KNL を使ってみて: 格子 QCD での例• 清水則孝 : 大規模並列計算用原子核殻模型コードの開発

第 3 回 3/18（物理学会＠九大の直後）, 広島大学で予定「京からポスト京に向けて」シンポジウム 2019/1/10 金森逸作

7/8

まとめ••

コード開発も動いています
格子 QCD での Bridge++ の活動を報告... 使ってみませんか
コードも書いてる研究者の情報交換
HPC-Phys 勉強会、はじめました（勉強会の様子: http://www.jicfus.jp/jp/rep_hpc-phys01/,

http://www.jicfus.jp/jp/rep_hpc-phys02/ より）「京からポスト京に向けて」シンポジウム 2019/1/10 金森逸作

8/8