重力多体問題専用計算機 grape - cfca重力多体問題専用計算機 grape ー...

38
重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 ()K&F Computing Research

Upload: others

Post on 11-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

重力多体問題専用計算機 GRAPEー その動作原理と使用方法

福重 俊幸(株)K&F Computing Research

Page 2: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

イントロダクション

動作原理

基礎的な使用法

まとめ

Page 3: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

d2 ridt 2 = f i

f i = ∑j ≠i

N

Gmj rj−ri

∣rj−ri ∣3

多体シミュレーションの計算コスト

i

j

j+2

j-1 j+1

O (N 2)

重力計算が全計算量の大半を占める。

O (N )

Page 4: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

高速化の手法

計算量を減らす

並列化

計算機自体の高速化

ツリー法、エバルト法、P3M 法、独立時間刻み法、、、

CPUコア並列、ノード並列、、、

クロックアップ、ベクトル化、専用化、、、

Page 5: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

重力計算に特化したハードウェア。

多体問題専用計算機 GRAPE

ホスト計算機(PC)

粒子の位置、質量

重力

GRAPE

Page 6: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

イントロダクション

動作原理

基礎的な使用法

まとめ

Page 7: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

重力計算に特化したハードウェア。

多体問題専用計算機 GRAPE

ホスト計算機(PC)

粒子の位置、質量

重力

GRAPE

Page 8: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

GRAPE-9 model 800/5000

重力パイプライン (GRAPE-5, GRAPE-6 互換)を集積したFPGAを8-16個搭載。

Page 9: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

GRAPE-7 model 600

GRAPE-5 互換の重力パイプラインを集積したFPGAを6個搭載。

Page 10: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

基本構成

位置 質量r[0] m[0]

パイプライン0

位置 重力r[i] → f[i]

パイプライン1

r[i+1] → f[i+1]

パイプライン2

r[i+2] → f[i+2]

粒子メモリ

r[1] m[1]

r[j] m[j]

Page 11: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

重力計算パイプライン

位置

質量

重力

プログラムではなく、論理回路で演算を記述する。

Page 12: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

GRAPEの系譜

GRAPE-1/1A(東大)

GRAPE-3 GRAPE-5

1988 1998 2008

GRAPE-7(KFCR,東大)

GRAPE-DR (KFCR,天文台,東大)

GRAPE-6

MDGRAPE-2(理研)

MDGRAPE-3(理研)

GRAPE-4GRAPE-2

GRAPE-2A MDGRAPE

PROGRAPE-1/2

汎用

専用

201320031993

GRAPE-9(KFCR)

GRAPE-8(東工大,一橋大)

GRAPE9-MPx (KEK,KFCRほか)

Page 13: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

初期のGRAPEボード

HARP-1(1993)

Page 14: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

GRAPE-7 model 600

GRAPE-5 互換の重力パイプラインを集積したFPGAを6個搭載。

Page 15: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

GRAPE-DR model 2000GRAPE-5,-6相当の演算をプログラマブルなカスタムLSIで行う。

Page 16: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

GRAPE-9 model 800/5000

重力パイプライン (GRAPE-5, GRAPE-6 互換)を集積したFPGAを8-16個搭載。

Page 17: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

汎用機よりも速い理由

- 計算対象があらかじめ決まっている。- 計算対象に高い並列性がある。

数値フォーマットの最適化

命令解釈部・メモリ制御部が必要ない

例) 17-bit 対数フォーマット

ができる。その分を演算回路(専用パイプライン)に割くこと

Page 18: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

汎用機(CPU)の構造

外部メモリ

CPU

メモリ制御

命令解釈

レジスタ

演算器(加算乗算)

周辺機器

Page 19: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

汎用機(CPU)の構造(つづき)

外部メモリ

CPU(実際のリソース)

メモリ制御

命令解釈演算器

演算器

Page 20: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

専用計算機

外部メモリ

GRAPE(リソース)

演算器

演算器

演算器

演算器

演算器

演算器

演算器

演算器 演算器

演算器

演算器

演算器

Page 21: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

GRAPE-7のパイプラインbit幅 format変換

Page 22: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

専用計算機(つづき)

外部メモリ

GRAPE(リソース)

演算器

演算器

演算器

演算器

演算器

演算器

演算器

演算器

Page 23: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

最近の計算機のトレンド

クロックを上げられないので並列度を上げる。

マルチコア、メニーコア

ベクトル演算器

SIMD 型アクセラレータ

Xeon (8コア)、Xeon Phi (60コア)

SSE (128bit)、AVX (256bit)

GPGPU

Page 24: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

汎用アクセラレータ(GPGPU)

外部メモリ

GPGPU(リソース)

演算器

演算器演算器

演算器 演算器

演算器

演算器

演算器 演算器

演算器 演算器

演算器

メモリ制御 命令解釈

Page 25: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

理論性能

GRAPE-7 GRAPE-9

演算性能 (chip 当り) 61 Gflops ~500 Gflops

演算性能 (システム) ~600Gflops ~8000 Gflops

GRAPE-5 互換機として

GRAPE-6 互換機として

演算性能 (chip 当り) N/A 170 Gflops

演算性能 (システム) N/A ~2400 Gflops

ホストとの通信性能 約 700MB/s 約 6GB/s

Page 26: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

実測性能

GRAPE-9 model5000 (GRAPE-6 互換パイプライン)

Tesla K20 (GRAPE-6 互換ライブラリ、単精度 & 疑似倍精度)

Page 27: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

イントロダクション

動作原理

基礎的な使用法

まとめ

Page 28: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

基礎的な計算の手順

1. 重力を及ぼす側の全粒子(j粒子)の位置と質量を 粒子メモリに書き込む。

1) 重力を受ける側の粒子(i粒子)の位置を 各パイプライン内のレジスタに書き込む。

2) 計算開始信号を送る。

3) 計算終了を待つ。

4) 求まったi粒子への重力を各パイプライン 内のレジスタから読み出す。

2. 全粒子への重力が求まるまで以下を行う。

Page 29: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

基礎的な計算の手順

j

j+2

j+1

for (i=0; i<n; i+=4) { calc_force_on(i..i+3);}

n-3

n-2

n-1

01

23

Page 30: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

基礎的な計算の手順

j

j+2

j+1

for (i=0; i<n; i+=4) { calc_force_on(i..i+3);}

n-3

n-2

n-1

45

7

6

Page 31: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

基礎的な計算の手順

j

j+2

j+1

for (i=0; i<n; i+=4) { calc_force_on(i..i+3);}

n-3

n-2

n-1

8

9

10

11

Page 32: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

基礎的な計算の手順

j

j+2

j+1

for (i=0; i<n; i+=4) { calc_force_on(i..i+3);}

n-3

n-2

n-1i+1

ii+2

i+3

Page 33: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

基本構成

位置 質量r[0] m[0]

パイプライン0

位置 重力r[i] → f[i]

パイプライン1

r[i+1] → f[i+1]

パイプライン2

r[i+2] → f[i+2]

粒子メモリ

r[1] m[1]

r[j] m[j]

パイプライン3

r[i+3] → f[i+3]

Page 34: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

コーディングの例 (直接計算法)npipes = g5_set_number_of_pipelines();for (step = 0; step < final_step; step++) { g5_open(); g5_set_range(xmin, xmax, mmin); g5_set_xj(0, n, x); g5_set_mj(0, n, mj); g5_set_eps_to_all(eps); g5_set_n(n); for (i = 0; i < n; i += npipes) { if (i + npipes > n) npipes = n - i; g5_calculate_force_on_x(xj + i, acc + i, pot + i, npipes); } g5_close(); // orbital integration ............}

Page 35: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

位置、質量のスケーリング

g5_set_range(xmin, xmax, mmin)

位置座標の上限、下限 質量の分解能

座標の分解能は

ソフトニング値の下限は

10−7× m

mmin 1/2

xmax−xmin~

約 10-10 x (xmax - xmin)

Page 36: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

位置、質量のスケーリング (続き)

オーバーフロー

m/ mmin=1 / rmax=10−6

m/ mmin=1 / rmax=10−8

小さすぎるソフトニング値

相対

誤差

2粒子間の距離

Page 37: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

イントロダクション

動作原理

基礎的な使用法

まとめ

Page 38: 重力多体問題専用計算機 GRAPE - CfCA重力多体問題専用計算機 GRAPE ー その動作原理と使用方法 福重 俊幸 (株)K&F Computing Research 高速化の手法

まとめ

- プログラムではなくハードウェアで演算を記述する。

+ GRAPEの動作原理

- 対象を限定することで高速化。

+ 最近の計算機

ホスト計算機上の API を介して使用する。

+ GRAPEの使用法

用途によっては GRAPE 的な手法が採用されつつある。