This repository has been archived by the owner on Mar 19, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.htm
399 lines (359 loc) · 15.1 KB
/
index.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>HPC向けベンチマークを考えるBoFに参加して思ったこと</title>
<meta name="description" content="HPC向けベンチマークを考えるBoFに参加して思ったこと" />
<meta name="author" content="LWisteria" />
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/mystyle.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<style type="text/css">
.reveal h1
{
font-size: 150%;
}
</style>
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h1>HPC向けベンチマークを考えるBoFに参加して思ったこと</h1>
<p>株式会社フィックスターズ</p>
<p><span style="font-weight: bold">𠮷藤 尚生 (<a href="https://twitter.com/LWisteria">@LWisteria</a>)</span></p>
<p><a href="https://connpass.com/event/111162/">SC18勉強会</a>(<time>2018/12/13</time>)</p>
</section>
<section>
<h2>概要</h2>
<section>
<h3>注意</h3>
<p>本内容は、BoFを聴講した作者個人の理解および感想であって、BoFの発表者である先生方や作者の所属機関の見解ではありません</p>
<p><small>間違ってたらすみません・・・</small></p>
</section>
<section>
<h3>自己紹介</h3>
<div>
<figure style="float: right; width: 35%">
<img src="img/avater.JPG" />
<figcaption>Online ID: <a href="https://twitter.com/LWisteria">@LWisteria</a></figcaption>
</figure>
<dl style="width: 60%; font-size: 70%">
<dt>名前</dt>
<dd>𠮷藤 尚生 (YOSHIFUJI, Naoki)</dd>
<dt>所属</dt>
<dd>株式会社フィックスターズ <span>ソリューション事業部</span>リードエンジニア</dd>
<dt>専門分野</dt>
<dd>土木工学・計算力学</dd>
<dd>水理学・海岸工学・河川工学</dd>
<dd>GPGPU, HPC, CAE</dd>
<dt>SC参加歴</dt>
<dd>2回目(SC16, SC18)</dd>
</dl>
</div>
</section>
<section>
<h3>なにしにSCへ?</h3>
<dl>
<dt>前回:SC16</dt>
<dd>ワークショップで発表</dd>
<dd><a href="http://proc-cpuinfo.fixstars.com/2016/12/sc16-html-2/" style="text-decoration: underline">Implementation and evaluation of data-compression algorithms for irregular-grid iterative methods on the PEZY-SC processor</a></dd>
<dt>今回:SC18</dt>
<dd><del>遊びに</del></dd>
<dd>情報収集&日本に持ち帰って社内等へ共有</dd>
</dl>
</section>
<section>
<h3>今日取り上げるセッション</h3>
<p style="font-size: 90%">Pros and Cons of HPCx benchmarks<small>(HPCxベンチマークの賛否)</small></p>
<figure>
<img src="img/sc18_webpage.png" style="width: 40%"/>
<figcaption><a href="https://sc18.supercomputing.org/presentation/?id=bof107">https://sc18.supercomputing.org/presentation/?id=bof107</a>より引用</figcaption>
</figure>
</section>
<section>
<h3>BoFの概要</h3>
<p><strong>Birds of a Feather</strong>: <span>発表者たちの自由討論会みたいなもの</span></p>
<div style="font-size: 70%">
<p>発表者(敬称略、発表順)</p>
<ul>
<li>平木 敬(東京大学)</li>
<li>ウォルター・リウン(SURFsara, PRACE)</li>
<li>牧野 淳一郎(神戸大学・理化学研究所)</li>
<li>エリック・ストローマイアー(ローレンス・バークレー国立研究所)</li>
</ul>
</div>
<p>各発表者のスライドは<a href="http://www.jmlab.jp/?p=828">牧野研のページ</a>にある</p>
</section>
<section>
<h3>BoFの内容</h3>
<p>Andoさんの記事読んで!!</p>
<figure>
<img src="img/ando.png" style="width: 60%"/>
<figcaption><a href="https://news.mynavi.jp/article/sc18_bof107-1/">https://news.mynavi.jp/article/sc18_bof107-1/</a>より引用</figcaption>
</figure>
</section>
<section>
<p style="font-size: 300%">ご清聴ありがとうございました</p>
</section>
</section>
<section id="toc">
<h3>目次</h3>
<ol class="toc">
<li>概要</li>
<li>BoF紹介</li>
<li>私見と感想</li>
<li>まとめ</li>
</ol>
</section>
<section>
<h2>BoF紹介</h2>
<section class="toc">
<h3>目次</h3>
<ol class="toc">
<li>概要</li>
<li class="recent">BoF紹介</li>
<li>私見と感想</li>
<li>まとめ</li>
</ol>
</section>
<section>
<h3>以下</h3>
<p>各発表者の内容を(勝手に)まとめて紹介します</p>
<p>それぞれを時系列で知りたい人はAndoさんの記事を参照してください</p>
</section>
<section>
<h3>今のHPC・スパコン向けベンチマーク</h3>
<p>主に話題に上がっていたものは以下</p>
<ul style="font-size: 90%">
<li>Linpack, HPL, Top500</li>
<li>HPCC</li>
<li>NPB</li>
<li>SPEC</li>
<li>UEABS</li>
<li>HPCG</li>
<li>HPGMG</li>
</ul>
</section>
<section>
<h3>Linpack, HPL, Top500</h3>
<p>n次元<strong>密行列のLU分解</strong>による<br />線形方程式求解のFLOP/sを測定</p>
<ul style="font-size: 90%">
<li><strong>Linpack</strong> (1979):最初の実装 in FORTRAN</li>
<li><strong>High Performance Linkpack</strong> (1991):<br />スパコン向けに書き直した in C言語</li>
<li><strong>Top500</strong>(1993):ランク付け開始(今に至る)</li>
</ul>
<p>全てのHPCベンチマークの原点<br />議論もここから出発する</p>
</section>
<section>
<h3>HPLの問題点</h3>
<p>1991年にNPB<を作った頃からLinpackは<br />「<strong>実アプリと合ってない</strong>」と言われていた</p>
<p>その理由は、ストローマイアー先生まとめ:</p>
<ul>
<li>浮動小数点演算に偏りすぎB/F=O(1/n)</li>
<li>今のアプリは(もう)HPLっぽくない</li>
<li>直感的な感覚と順位が合ってない</li>
<li>HPL特化機が簡単に作れてしまう</li>
</ul>
</section>
<section>
<h3>なぜまだHPLが使われるのか?</h3>
<p>いろんな計算機に<strong>適用しやすい</strong>から</p>
<ol style="font-size: 70%">
<li>「解くべき問題」だけが決まっている</li>
<li>ソースコードやアルゴリズムが変更化(演算量さえ変わってなければ)</li>
<li>問題規模を、計算機に合わせて変更化</li>
<li>出てくる性能がシステム規模に正相関するので、全系の測定が重要</li>
<li>3,4から、システム規模を変えた時の性能が推測しやすい</li>
<li>多くの場合DGEMMだけが問題になっているので高速化対象が分かりやすい(一部のメニーコアなアクセラレーター除く)</li>
</ol>
</section>
<section>
<h3>ではどうするのか?</h3>
<ul style="font-size: 150%">
<li>A. HPLだけを使い続ける</li>
<li>B. 新しいベンチマークを作る</li>
<li>C. HPLを含めた複数指標</li>
</ul>
</section>
<section>
<h3>B. 新しいベンチマークには何が必要?</h3>
<dl>
<dt>HPLの良いところは引き継ぐ</dt>
<dd style="font-size: 75%"><ul>
<li>問題規模が可変</li>
<li>性能はシステム規模に応じて上がる</li>
<li>ハードウェアの性能が点数に直結しやすい</li>
<li>最適化の余地がある(コードやアルゴリズムは固定しない)</li>
</ul></dd>
<dt>HPLを補間する</dt>
<dd style="font-size: 75%"><ul>
<li>演算律速ではない</li>
<li>Top500の順位とは異なる結果</li>
<li>ベンチマーク特化機が作りづらい</li>
</ul></dd>
</dl>
</section>
<section>
<h3>HPCx候補</h3>
<dl style="font-size: 80%">
<dt>HPGMG</dt>
<dd>多重格子法によるポアソン方程式求解</dd>
<dd>Vサイクルによって、1ベンチマーク中で<strong>問題規模が変わる</strong>のが特徴</dd>
<dt>HPCG</dt>
<dd>多重格子法前処理付共役勾配法による熱伝導方程式求解</dd>
<dd><strong>HPLの疎行列版</strong></dd>
<dd>MGも集団通信も浮動小数点演算もある</dd>
<dd>受容されつつある・・・?</dd>
</dl>
</section>
<section>
<h3>HPCGとHPGMGは何を測る?</h3>
<p>B/F性能を測る<br />→実用的に重要である<strong>メモリ帯域性能</strong>を表す</p>
<figure>
<img src="img/bf.jpg" style="width: 30%" />
<figcaption>ストローメイヤー先生のスライドより引用(重要な図なので後で自分で作り直したい)</figcaption>
</figure>
</section>
<section>
<h3>B/Fを上げれば良いのか?</h3>
<p><strong>違う</strong>:遅い(Fが小さい)と良くなってしまう</p>
<p><small>(既にそういうプロセッサーが生まれつつある、電力効率的な意味で)</small></p>
<p>「性能評価の『最大主成分』を演算性能とすれば、<br />B/Fは『他の主成分』として使うべき」<br />(ストローメイヤー先生)</p>
</section>
<section>
<h3>アプリ性能は何に律速するのか?</h3>
<p>現代計算機は複雑なので<strong>1つに決められない</strong></p>
<ul style="font-size: 80%">
<li>整数・浮動小数点演算</li>
<li>レジスタ数</li>
<li>キャッシュ量、幅、階層深さ</li>
<li>DRAM</li>
<li>ファイルI/O</li>
<li>ネットワーク</li>
</ul>
<p>京やポスト京の経験から、どれかに絞るのは難しい</p>
</section>
<section>
<h3>複数ベンチマークをまとめる</h3>
<p>1指標では無理<br />→想定アプリのベンチマークを複数まとめればいい</p>
<ul>
<li>NASA Parallel Benchmark (1991)</li>
<li>HPC Collections (2005)</li>
<li>など...</li>
</ul>
<p>→廃れた</p>
<p>「今」を測れても、将来を測れないから</p>
</section>
<section>
<h3>指標を組み合わせる</h3>
<p>HPL性能=f<br />HPLで測定できない指標を取るベンチマーク性能=x</p>
<p><strong>x/fが大きいベンチマーク</strong>が良い。が・・・</p>
<ul style="font-size: 90%">
<li>ハードウェア的にはx/fを上げると消費電力が上がる</li>
<li>xが難しいので手法を改良して必要x/fを下げようと頑張るのがHPCアルゴリズム研究者の意義</li>
</ul>
</section>
<section>
<h3>「今ほしい計算機」を調べたい?</h3>
<p>計算機の調達、借りる計算機の選定・・・</p>
<p>複数ベンチマークをまとめるやつが適している</p>
<ul>
<li>UEABSなど</li>
</ul>
<p>「今すぐに必要な」アプリ性能を見れるので</p>
</section>
</section>
<section>
<h2>私見と感想</h2>
<section class="toc">
<h3>目次</h3>
<ol class="toc">
<li>概要</li>
<li>BoF紹介</li>
<li class="recent">私見と感想</li>
<li>まとめ</li>
</ol>
</section>
<section>
<h3>私見</h3>
<ul style="font-size: 80%">
<li>HPLにはHPLの良さがあり、これからも続けるべきベンチマーク</li>
<li>「実アプリ性能」を測るベンチマークは難しい</li>
<li>必要なアプリケーションは時代によって変わるので、実アプリ性能をベンチマークの指標にすべきではないのでは</li>
<li>アプリケーションによって測定できるハードウェアの何かの性能をベンチマークする</li>
<li>現時点では「HPLとHPCGの間」というドンガラ先生の趣旨で良さそう。</li>
</ul>
</section>
<section>
<h3>感想</h3>
<ul>
<li>英語難しかった・・・<small>(平木先生の英語が一番聞き取りやすかった)</small></li>
<li>紹介しなかったが、SCは展示もとても面白い</li>
<li>JFK記念館は期待以上に良かった</li>
<li>ダラスの<strong>バッファロー肉ステーキ</strong>はうまい</li>
</ul>
</section>
</section>
<section>
<h2>まとめ</h2>
<section class="toc">
<h3>目次</h3>
<ol class="toc">
<li>概要</li>
<li>BoF紹介</li>
<li>私見と感想</li>
<li class="recent">まとめ</li>
</ol>
</section>
<section>
<h3>まとめ</h3>
<ol>
<li>HPLに代わるベンチマークはない。これからもHPLが使われる意味はある</li>
<li>実アプリ性能を表す魔法のベンチマークもない</li>
<li>HPLの良いところそのままに、HPLが計測できない指標のベンチマークが必要</li>
<li>HPCGがB/Fを測定できているので、候補?</li>
</ol>
<p><strong>SC楽しい&有意義</strong>なので、みんな行きましょう!!</p>
</section>
<section>
<p style="font-size: 300%">return 0;</p>
<p><small>Thanks @vincent.dieckhoff for helping my English listening</small></p>
</section>
</section>
</div>
</div>
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
slideNumber: "h.v",
transition: 'slide', // none/fade/slide/convex/concave/zoom
width: 1280,
height: 720,
margin: 0,
dependencies: [
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'plugin/math/math.js', async: true }
]
});
</script>
</body>
</html>