+ All Categories
Home > Documents > RIST 20130927v01 公開版.ppt [互換モード]

RIST 20130927v01 公開版.ppt [互換モード]

Date post: 25-Jan-2022
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
30
「京」コンピュータにおけるOpenFOAM大規模数値流体計算による建物風圧予測 清水建設(株) 技術研究所 ファム バン フック 野津 内山 菊池 浩利 OpenFOAMワークショップ OpenFOAMを京で使おう 2013/09/27
Transcript
Page 1: RIST 20130927v01 公開版.ppt [互換モード]

「京」コンピュータにおけるOpenFOAMの大規模数値流体計算による建物風圧予測

清水建設(株) 技術研究所

○ ファム バン フック

野津 剛

内山 学

菊池 浩利

OpenFOAMワークショップ ― OpenFOAMを京で使おう ― 2013/09/27

Page 2: RIST 20130927v01 公開版.ppt [互換モード]

本日の内容

「京」における建物の局部風圧の予測 (当初の予定)詳細は他の機会でご報告

「京」におけるOpenFOAMの実装※ (主催の主旨)移植の苦労話 (課題と解決策)

大規模並列計算へのコードの改良

計算例

2

※自ら,京コンピュータに移植したもの

Page 3: RIST 20130927v01 公開版.ppt [互換モード]

OpenFOAMの利用経験

2009年,オープンソース活用の一環として利用

2010年,東工大TSUBAMEスパコンで実装

コード一部のGPU化による計算高速化

多くの建設分野の課題をシミュレーションより解析

2012年9月~ 「京」コンピュータで実装

産業利用

広域3D津波シミュレーション広域3D風環境シミュレーション

Page 4: RIST 20130927v01 公開版.ppt [互換モード]

「京」でのOpenFOAMの現在の実績

計算モデル

最大作成モデル : 100億格子

最大計算モデル : 64億格子

通常の計算モデル : 10億格子

利用ノード・並列数

最大ノード数 : 6,144 (「京」の8%)

最大並列数 : 12,288平均並列数 : 3,072

100億格子・1万並列処理は「京」で計算可能

※これらはOpenFOAM又は「京」コンピュータの限界に至っていない

Page 5: RIST 20130927v01 公開版.ppt [互換モード]

「京」コンピュータの概略

計算ノード:82,944CPU : 8コア (2GHz)/ノード

メモリ: 16GB/ノード

ネットワーク

Tofu 3次元トーラスのネットワーク

コンパイラ

富士通社製コンパイラ• Fortran, C, C++

コンパイル環境

クロスコンパイル• フロントエンドと計算ノードと違うCPU環境

Page 6: RIST 20130927v01 公開版.ppt [互換モード]

「京」におけるOpenFOAMの移植・実装

計算環境整備の課題 ----- 「京」保有課題

コンパイラ

計算環境 (データの転送など)ネットワーク (Tofuの取扱い)

計算大規模化の課題 ----- 「10億格子以上」共通課題

超大規模モデルの計算 (整数32ビットの壁)大規模並列通信 (未だ実績の無い数千以上の並列)

大規模プリ・ポスト処理

6

マニュアルで対応可

Page 7: RIST 20130927v01 公開版.ppt [互換モード]

OpenFOAMのコンパイラ

OpenFOAMのコンパイラの実績

GCC: 4.5.0 and aboveLLVM Clang: 3.1Intel ICC: 12.1.0 and 13.1.0

C++:2011年規格 ISO/IEC 14882:2011• コア言語への機能追加

• 標準C++ライブラリの拡張

• C++ Technicalライブラリの大部分の追加

7

Page 8: RIST 20130927v01 公開版.ppt [互換モード]

「京」でのコンパイラ環境

富士通社製コンパイラ利用経験がないため,不安があった.

Page 9: RIST 20130927v01 公開版.ppt [互換モード]

「京」でのOpenFOAMのコンパイル

コンパイルしてみると,不明なエラー…コードを修正,コンパイルは成功ですが,

計算してみると,不明なエラー…

どちらが悪いのか,判断は難しかった

OpenFOAMコード自体

自分の修正部分

コンパイラ

「京」

9

Page 10: RIST 20130927v01 公開版.ppt [互換モード]

「京」でのOpenFOAMのコンパイル

解決策 (よりスマートな方法があるかも)

エラーメッセージの分析• OpenFOAMコードの解読 (難関,4百万行を最小限・適切修正?)

エラー処理• 複数サイト情報の参照(C++, CFD Online,英語)

• 類似なエラーとその解決策は記載

• コードの一部を修正・追加

• C++のクラス・オブジェクト関数の定義

• ライブラリのリング追加

• 共有ライブラリがうまくリンクできない対策

• 「京」におけるクロスコンパイルの対応

• 段階的に分けてコンパイル

2ヵ月間で対応済み10

Page 11: RIST 20130927v01 公開版.ppt [互換モード]

移植したOpenFOAMバージョン

標準バージョン

OpenFOAM-1.6.xOpenFOAM-2.0.xOpenFOAM-2.1.xOpenFOAM-2.2.x

開発バージョン

OpenFOAM-1.6-ext• 付属ライブラリは多い

※バージョンによるコンパイルの大きな変更が無い.

11

Page 12: RIST 20130927v01 公開版.ppt [互換モード]

大規模モデルの計算:整数32bitの壁

12

20億までコードの修正整数64bit対応

面の数(あり得ない):-1,880,129,018

計算は異常終了!

900兆まで

面の数:17,742,344,704~177億格子数: 5,908,037,632~ 59億

OpenFOAMの改良C++オブジェクト指向

整数定義: Labelクラス• Int, Long int• Long long int (追加)

関連コードの一部修正

Page 13: RIST 20130927v01 公開版.ppt [互換モード]

大規模並列計算:分散処理通信の問題

既存コードのMPI通信 (無駄な通信が多い)

集団通信:• MPI_Scatter• MPI_Gather

改良コードのMPI通信 (必要通信だけを実施)

隣接通信(1対1通信):• MPI_Send• MPI_Recv

13

大規模並列の計算性能が向上

1000並列以上の計算には急激な性能悪化

Page 14: RIST 20130927v01 公開版.ppt [互換モード]

ベンチマークの検証対象(性能出にくい)

・格子 :非構造・ソルバ: simpleFOAM

(RNG, AMG)

・格子 : SnappyHexMesh格子,・ソルバ: pisoFOAM (LES, AMG)

500m×500m

中規模市街地モデル(1千万格子,定常計算)

風洞再現の大規模モデル(1.32億格子,非定常計算)

Page 15: RIST 20130927v01 公開版.ppt [互換モード]

大規模並列性能(Strong Scaling)

0

200

400

600

800

0 400 800 1200 1600

加速

並列数

既存コード(1.32億格子)

改良コード(1千万格子)

改良コード(1.32億格子)

現在,さらにチューニングによる高速化を実施中

Page 16: RIST 20130927v01 公開版.ppt [互換モード]

大規模プリ・ポストの処理:~10億格子の壁

16

モデルの作成(プリ)

シミュレーション

初期化

領域分割

データ結合ポスト処理

可視化

従来の処理方法は困難

プリ・ポストPCのメモリ不足 (1000GB~10億格子)

Page 17: RIST 20130927v01 公開版.ppt [互換モード]

大規模プリ・ポストの処理:~10億格子の壁

プリ・シミュレーション・ポストの一環の並列処理を整備

OpenFOAMの既存ツールの改良

モデルの作成(プリ)

シミュレーション

データ出力・可視化

初期化

ロードバランス

ポスト処理

画像処理

データ処理等

Page 18: RIST 20130927v01 公開版.ppt [互換モード]

※メッシュ図は1/4解像度で表示

大規模計算モデルの作成の一例

OpenFOAMの既存ツールで基本的に対応可能・計算モデル:64億格子・並列数: 12,288※snappyHexMeshの一部改良で適用

部分の細分化により複雑な形状を再現可能

Page 19: RIST 20130927v01 公開版.ppt [互換モード]

19

格子:1.1千万格子 1.2億格子

大規模計算モデルの作成の一例

64億格子計算メッシュの段階的に細分化

Page 20: RIST 20130927v01 公開版.ppt [互換モード]

大規模計算の一例

計算モデル: 64億格子並列数 : 12,288

※現在,安定的に計算中

Page 21: RIST 20130927v01 公開版.ppt [互換モード]

実験との比較検証 (風圧のピーク値)

21

Exp. Cal.(従来,1.32億) Cal.(10億格子)

-5-4-3-2-10

28 29 30 31 32

Pres

sure

coe

ffic

ient

time(s)

実験

Cal.(10億)Cal.(1.32億)

実験と高い精度の局部風圧を再現可能

Page 22: RIST 20130927v01 公開版.ppt [互換モード]

22

10

億格

子モ

デル

の可

視化

(渦

度等

値面

京コンピュータにおけるOpenFOAMの大規模計算は可能

Page 23: RIST 20130927v01 公開版.ppt [互換モード]

単体CPUコアの実行性能-CPU周波数

0

1 104

2 104

3 104

1.8

2

2.2

2.4

2.6

2.8

3( )

tim

e(s

) CP

U(G

Hz)

1.6.x 1.7.1 2.0.x 2.1.x 2.1.1 2.1.1 2.1.1OpenFOAM

T1.2 T2.0 T2.0

SandyBridge(2012)

K K KMachines

計算時間

クロック数(GHz)

CPU Intel Westmere(2010)

AMD Opteron(2006)

SPARC64TM VIIIfx(2012)

自動チューニング

※チューニング中

Page 24: RIST 20130927v01 公開版.ppt [互換モード]

1.6.x 1.7.1 2.0.x 2.1.x 2.1.1 2.1.1 2.1.1OpenFOAM

T1.2 T2.0 T2.0

SandyBridge(2012)

K K KMachines

※チューニング中

CPU Intel Westmere(2010)

AMD Opteron(2006)

SPARC64TM VIIIfx(2012)

単体CPUコアの実行性能-CPU消費電力

0

1 104

2 104

3 104

40

60

80

100

120

140

tim

e(s

)消

費電

力(W

)

計算時間

消費電力(W)

自動チューニング

Page 25: RIST 20130927v01 公開版.ppt [互換モード]

単体ノードの高い実行性能

25

0

1

2

3

4

5

6

7

8

0 2 4 6 8 10 12 14 16

加速

CPUコア・並列数

市販マシン(Intel Sandy Bridge,8coresx2)

京コンピュータ(SPARC 64th VIIIfx,8cores)

T2(Intel Westmere,6coresx2)

Page 26: RIST 20130927v01 公開版.ppt [互換モード]

Tofu ネットワークの特徴

26

Page 27: RIST 20130927v01 公開版.ppt [互換モード]

領域分割による性能変化

27

(B)3次元分割(x)(A)1次元分割 (C) 3次元分割(y)

Page 28: RIST 20130927v01 公開版.ppt [互換モード]

領域分割による性能変化 (96並列)

0

200

400

600

800

A B C

Tim

e(s)

領域分割

(B)3次元分割(x)(A)1次元分割 (C) 3次元分割(y)

Page 29: RIST 20130927v01 公開版.ppt [互換モード]

0

16

32

48

64

80

96

0 32 64 96 128

加速

Nodes

大規模並列性能

29

T2(Infiniband, QDR)

※チューニング中

K(Tofu)

1千万メッシュ

1.32億メッシュ

K(Tofu)

大規模計算モデルの適切

Page 30: RIST 20130927v01 公開版.ppt [互換モード]

まとめ

OpenFOAMの実装を通じて,京コンピュータでは

オープンソースの利用とその高い性能を得ることが可能.• 複数コミュニティーサイトから有意な情報を得られた.

• オープンソースであるため,コードの柔軟な変更が可能.

• ただし,大変でした・・・.

建物の局部風圧の研究予測において実用レベルの性能を確認• 多くの実用研究に展開

30


Recommended