東京大学情報基盤センター
お試しアカウント付き並列プログラミング講習会「Oakforest-PACS概要・OpenFOAM概要」

今野 雅(東京大学客員研究員・株式会社OCAEL)

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

1東京大学情報基盤センターの運用システム
FY
08 09 10 11 12 13 14 15 16 17 18 19 20 21 22
Hitachi SR11K/J2
IBM Power-5+

18.8TFLOPS, 16.4TB

Yayoi: Hitachi SR16000/M1
IBM Power-7
54.9 TFLOPS, 11.2 TB

Hitachi HA8000 (T2K)
AMD Opteron

Oakforest-PACS
Fujitsu, Intel KNL

25PFLOPS, 919.3TB

140TFLOPS, 31.3TB

Oakleaf-FX: Fujitsu PRIMEHPC
FX10, SPARC64 IXfx
1.13 PFLOPS, 150 TB

Post FX10

50+ PFLOPS (?)Oakbridge-FX

136.2 TFLOPS, 18.4 TB

Reedbush, SGI
Broadwell + Pascal
1.80-1.93 PFLOPS

Peta

K

K computer

Post-K

これまでは概ね2基の大型システム，約6年サイクルで更新
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

2Oakforest-PACS(OFP)のシステム構成

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

3OFPのハードウェア全体構成
項目

仕様

総理論演算性能

25.004 PFlops

総ノード数

8208

総主記憶容量897 TByte

ネットワークトポロジー

Full-bisection Fat Tree

並列ファイルシステム

システム名

Lustreファイルシステム

サーバ(OSS)DDN SFA14KE

サーバ(OSS)数10

ストレージ容量

26 PB

ストレージデータ転送速度

500 GB/sec

サーバ

DDN IME14K

高速ファイルキャッシュ サーバ数
システム
容量
ストレージデータ転送速度
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

25
940 TB
1,560 GB/sec
4

OFPのノード構成
項目

仕様

マシン名

Fujitsu PRIMERGY CX1640 M1

C
P
U

プロセッサ名Intel® Xeon Phi ™ 7250（開発コード名：Knights Landing）

プロセッサ数(コア数)

1 (68)

周波数

1.4 GHz

理論演算性能3.0464 TFlops

Memory96 GB(DDR4)＋ 16 GB(MCDRAM)

インターコネクト

Intel ® Omni-Path ネットワーク(100 Gbps)

Xeon Phi 7250(Knights Landing, KNL)プロセッサタイル• プロセッサ：34タイル• タイル：コア 2 + 共有L2キャッシュ• コア：Atom(1.4GHz)• メモリ✓MCDRAM：16GB，490〜GB/s(注，高バンド幅)✓DDR4：96GB，115.2GB/s(大容量)
図出典：Hotchips 27 (注) Stream Triadベンチマーク
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

5OFPの利用料金• パーソナルコース：年間10万円(1口あたり)．最大3口まで✓トークン：17,280ノード時間(2ノード 24時間 360日分)✓消費係数：1(8ノード以下)，2(8ノード超)✓ディスク：並列ファイルシステム1TB✓企業利用無し• グループコース：申込8ノードあたり年間40万円(企業48万円)✓トークン：Nノード 24時間 360日分 (N：申込ノード数)✓消費係数：1(Nノード以下)，2(N超)✓ディスク(グループ当り)：並列ファイルシステム8TB• 1年未満で月数別利用負担制度もあり• 企業利用(グループのみ)は利用審査があり，簡単な成果公開が必要• Reedbushとのトークン相互交換可能(一般利用のみ．企業，HPCI等では不可)• 1週間お試しアカウント付き講習会(年10回程度)，トライアルユース(無償・有償)有り
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

6トライアルユース
有償トライアルコース(安価)
2基の大型システム，6年サイクル．現在，5システム運用中
無償トライアルコース(企業のみ)• アカデミック利用：最大３ヶ月✓パーソナルコース✓グループコース• 企業利用✓パーソナルコース：最大３ヶ月- 本講習会の受講が必須、審査無✓グループコース- 無償トライアルユース：最大3ヶ月- 有償トライアルユース：最大9ヶ月- スーパーコンピュータ利用資格者審査委員会の審査が必要（年２回実施）✓双方のコースともに、簡易な利用報告書の提出が必要
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

7

OpenFOAM概要@T+ r · (U T ) + r · (↵rT ) = ST@tsolve(fvm::ddt(T)+ fvm::div(phi,T)- fvm::laplacian(DT,T)== fvOptions(T));

有限体積法
ポリヘドラル境界適合Hex
メッシャー

マルチフィジックス
乱流モデル:
RAS, LES, DES, …
線型ソルバー :AMG, PCG, PBiCG, …
離散化スキーム: …

多数のモデル実装済

C++

GPL
Open Source
カスタマイズ可能
低コストな超並列計算

図出典： [OFF] The OpenFOAM Foundation ( http://www.openfoam.org/ )東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

8OpenFOAMの歴史• 1989年ー2000年：研究室のFORTRANコード時代、開発元：英Imperial
CollegeのGosman研(Star-CDの開発元)の Henry Weller, Charlie Hill

• 1993年夏：事故により全コード消失。C++で書き直し(FOAM)• 1999年ー2004年：商用コード期 (FOAM) Field Operation And

Manipulationの略、開発元： Nabla(Henry, Hrvoje Jasak, Mattijs
Janssensら)、代理店：CAEソリューションズ(元フルイドテクノロジー)• 2004年12月：オープンソース化 (現在のOpenFOAMに名称変更)、開発
元：OpenCFD(Henry, Mattijs, Chris Greenshields)• 2011年8月15日：SGIによる買収、GPL下のソースの管理や配布は、同時に設立されたThe OpenFOAM® Foundationが運用• 2012年9月12日：ESIによる買収、Foundationによる運用は継続• 2014年：Henryらが独立(CFD Direct社)．ソースはFoundationが管理
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

9標準ソルバー・チュートリアルのカテゴリ
カテゴリ名
カテゴリ内容
カテゴリ名
DNS
直接数値解析
ﬁniteArea
basic
基礎的なCFDコード heatTransfer
combustion
燃焼
stressAnalysis
compressible
圧縮性流れ
incompressible
discreteMethods 離散要素法
lagrangian
electromagnetics 電磁流体
multiphaseﬁnancial
金融工学
リリース月

2016
Jun Oct Jul

バージョン

4.0

リリース年

4.1 v1606 v1612 v1706

12 12
12
ソルバ
82 82
86
チュートリアル 207 207 226
カテゴリ

Dec

2017
Jun Jul
Dec

12
86
253

12
95
284

カテゴリ名
有限面積法
熱輸送
固体応力解析
非圧縮性流れラグランジアン粒子追跡
多層流

Jun

5.0

v1712 v1806

12
86
229

13
101
298

13
98
322

2018
Jul

Dec

6

v1812

12
80
240

13
99
337

注) 青色バージョン：OpenFOAM Foundation系，赤色バージョン：Plus(ESI)系
Foundation系はv1606+以降に採用されたMPIのメモリ使用量最適化がなされておらず，概ね2,000並列以上で使用量が莫大に増加するので，大規模並列ではPlus系を使用する必要がある
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

10チュートリアルとは‣ チュートリアルとは✓OpenFOAM標準ソルバーの実行例✓foamRunTutorials コマンドにより自動的に解析が実行できる‣ ユーザガイド第2章で扱っているチュートリアル✓cavity：天井駆動のキャビティ流れ✓plateHole：穴あき板の応力解析✓damBreak：ダムの決壊

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

11単相等温流れのチュートリアル例

バイク周りの流れ
moterBike
図出典： [OFF]バックステップ流れ(LES)
pitzDaily[OFT] オープンCAE勉強会@関西OpenFOAMチュートリ
アルドキュメント作成プロジェクト

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

12回転撹拌槽のチュートリアル例

図出典
[OFT]

回転攪拌槽の流れ(MRF)
回転攪拌撹拌槽内の流れ(移動格子・AMI)
mixerVessel2D
mixerVesselAMI
MRF: Multiple Reference Frame(回転領域内で遠心・コリオリ力を付加し，回転座標系で解く)
AMI: Arbitrary Mesh Interface(移動格子と静止格子上でのパッチ間で諸量の補間処理等を行う)
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

13移動格子のチュートリアル例

ピストン押し込み流れ
movingCone

スクリューの回転流れ場
propeller

翼型の6自由度剛体運動
wingMotion

図出典 [OFT]東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

14相変化のチュートリアル例

速度

相率

弾丸周りのキャビテーション
cavitatingBullet

プロペラ周りのキャビテーション
propeller

図出典 [OFT]東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

15

粒子計算のチュートリアル例
図出典： [OFF]Particle Tracking

Multiphase Particle-in-Cell(MP-PIC)東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

Discrete Element Modeling
(DEM)
16

連成熱伝達解析(CHT)のチュートリアル例
図出典 [OFT]

回転する熱交換機解析(MRF)
heatExchanger
OpenFOAMのCHT解析における欠点• エネルギー保存式を全領域で連成せず，連成熱伝達解析
multiRegionHeaterRadiation••

領域毎に解くので収束が遅い
形態係数を用いた放射解析の精度が悪い
熱収支計算が容易ではない(熱解析共通)

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

17OpenFOAMでの代表的な解析手順
前処理(格子生成など)

解析

格子生成

初期設定

[blockMesh，[setFields等]

snappyHexMeshなど]

後処理(可視化など)
可視化(サードパーティ)[ParaView，Visit，
商用可視化ツール等]

領域分割(並列計算時)[decomposePar]または
格子生成(サードパー
ティ)

解析ソルバ

[cfMesh,Salome,gmsh
商用メッシャー等][icoFoam等]
様々な結果後処理

必要あれば格子変換

領域統合(並列計算時)[gmshToFoam等][reconstructPar]

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会[sample等]

18

OFPでのOpenFOAMの代表的な解析手順
ユーザーマシン

1. ログイン[ssh]

ログインノード
並列実行は不可
共有して使用しているので，負荷が大きい計算は禁止

計算/プリポストノード

4. 格子可視化[ParaView]

3. 格子転送[scp, rsyncなど]

2.格子生成[blockMesh,

7.可視化[ParaView]

6. 解析結果転送[scp, rsyncなど]

5.流体解析
[ソルバ]

snappyHexMeshなど]

バッチ/インタラクティブジョブにより実行

計算ノードのコア単体性能は低く，メモリも少ないので，多並列が難しく，メモリが必要なプ
リポスト処理(blockMesh，領域分割，可視化など)はプリポストノードで実行するほうが速い
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

19OpenFOAMの稼働環境
Linux, Mac, Windows機で動作

FOCUS
東工大 TSUBAME
東大 Reedbush-U, H,Ｌ
名古屋大学FX100
JCAHPC Oakforest-PACS
九州大学ITO
大阪大学 OCTOPUS，etc.

Laptop PC
クラスタ
クラウド〜100万格子〜1000万格子

スーパーコンピュータ フラッグシップ〜1000億格子〜10億格子Amazon EC2(GPU機あり)
Microsoft Azure(GPU機あり)
富士通TCクラウド
京 (SPARC64機)
Etc.
RISTがHPCI課題の
京ユーザ向けに最適化を支援
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

20OpenFOAMの主な派生版(Fork)
図出典：ESI (https://www.esi.co.jp/
news/2014/PressRelease̲0128.html )• 商用版✓ HELYX(Engys): OF拡張版+GUI✓ iconCFD(IDAJ, ICON): OF拡張版+GUI✓ Visual-CFD(ESI): GUI• オープンソース版✓HELYX-OS(Engys): GUI
Visual-CFD(ESI)✓foam: Hrvoje Jasak(クロアチア ザグレブ大学教授，Wikki社 代表)が主導するコミュニティベース版．FSIやBlock coupledソルバ等の公式版に無い機能を実装

foamの 流体・構造連成(FSI)✓OpenFOAM+(ESI): 安定化と機能拡張

OpenFOAM+の変動風生成

図出典：www.openfoam.com
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

21OpenFOAMの派生図
図出典：olaFoam
http://foam-u.fr/openfoam-quelle-distribution-et-par-qui/

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

22OpenFOAMの課題‣ 設定用GUIが無く，全てテキストファイルで設定する必要があるが，詳細
な公式マニュアルがほとんど無い → ソースコードを読まないと詳細な設定方法がわからないので，初心者には設定が困難．解析条件に応じた推奨
設定も不明‣ GUIに関しては商用(iconCFD, Visual-CFD)，オープンソース(HelyxOS, DEXCS, TreeFoam)などが続々登場してきた
オープンソースGUI例

DEXCS (野村氏作)

TreeFoam(藤井氏作)

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

HelyxOS(engys社)
23

OpenFOAMの課題‣ メッシャー(blockMesh, snappyHexMesh)で格子を生成するのが遅く，質の良いレイヤを貼るのは困難 → 初心者は格子生成で断念‣ Pointwise，HEXPRESSなどの商用メッシャーはOpenFOAMの格子を出力できるようになっている．

‣ Helyx, iconCFDなどの商用ForkではsnappyHexMeshの機能を改善‣ オープンソースでハイブリッド並列，レイヤ付加性能に優れたOpenFOAM
用メッシャーcfMeshも登場(v1712に取り込まれた)
cfMesh
による
レイヤ付
き六面体
格子
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

cfMesh
による
ポリヘド
ラル格子
24

並列計算による台数効果と並列化効率• 並列計算による台数効果 (スピードアップ) S

P

SP = TS / TP
ここでTS ： ベースとなるプロセス数(1プロセス，1ノード等)での実行時間
TP ： ベースとなるプロセス数 Pでの実行時間• 並列化効率 E

P

EP = SP / P ×100 [%]このケースでは12ノード以上使用しても非効率→台数効果の飽和(Saturation)をベンチマークテスト
で事前に把握し，非効率な計算を行わないことが重要

T8 < T12

実行時間

台数効果(スピードアップ)

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

並列化効率
25

並列計算のベンチマークテスト• ベンチマークテスト：プログラム実行時間やFLOPS値などの性能指標の計測• 並列計算機でのベンチマークテストは重要✓並列数を変更させて，台数効果(スピードアップ)や並列化効率を調べ，効率の良い並列数を決定できる✓時間ステップ数や反復数が小さい予備計算で検討するのが効率的• OpenFOAM等のCFDコードでは圧力線型ソルバのベンチマークテストも重要✓実行時間は圧力線型ソルバの種類や前処理・スムーズ方法に強く依存✓線型ソルバーの速さは並列数にも依存- 並列数小→GAMG(代数マルチグリッド) > PCG(前処理付き共役勾配法)- 並列数大→PCG > GAMG✓問題にも依存するが，PCGの前処理としてGAMGを用いると，広い並列数の範囲
で概ね最速．なお，GAMGのスムーザはDIC(不完全コレスキー分解)またはDICGaussSeidel(DICとガウスザイデル法の併用でより安定)が概ね最速✓さらに並列数が増えると，前処理がDICのPCGが概ね最速
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

26

OpenFOAMの並列計算手法
OpenFOAMの並列計算手法
1. 格子生成2. 領域分割 (decomposePar)
3. MPI並列でソルバを実行(MPI+OpenMPのハイブリット並列は標準では未実装．研究例有り)

4. 領域毎の解析結果を再構築 (reconstructPar)
プロセッサ
間MPI通信(フラット
MPI通信)

processor
2

processor
3

プロセッサ
間通信は，
計算効率を
低下させる

processor
0

processor
1
damBreakFineチュートリアル

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

27

領域分割の設定
system/decomposeParDict
numberOfSubdomains 4;
method//領域分割数

simple; //領域分割方法

metis

simpleCoeffs //単純に軸方向に分割{n( 2 2 1 ); //分割数

delta

0.001;

simple}hierarchicalCoeffs //分割方向の順番を指定{
hierarchicaln( 2 2 1 );orderxyz; //分割方向の順番
delta
0.001;}

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

sctochmetis : Metisライブラリを使用。
プロセッサ間の通信量に大きく影響する分割領域間の界面数を最小化。
ライセンスにより商用利用や再配布が自由ではない
scotch : Scotchライブラリを使用。
フリーソフトライセンスでMetisと互換APIを持つ
manual : 格子を割り充てるプロセッ
サを手動で指定28

重み付き領域分割例
重み付き

重み無し

3

4

metis

2

system/decomposeParDict

4

1
1

2

3
1

3

4

4

scotch1

23

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

2scotchCoeffs
または
metisCoeffs{
processorWeights( 1 2 3 4 );//プロセッサ毎の格子数の重み係数//省略時は重み無し}
重み付けは，ノード間で性能が異なる場合に用いる場合があるが，通常は用いない29

snappyHexMeshによる格子生成
blockMesh
構造格子メッシャー

snappyHexMesh
構造格子メッシャー

解析領域を含む構造格子のベース格子
を生成

ベース格子を細分割して，形状に適合したメッシュを自動的に生成〇 ほぼ六面体の格子が自動的に生成可能
任意間隔のベース格子が作成が難しい
生成格子がベース格子の形状に大きく依存

解析領域

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

30

snappyHexMeshの特徴• 六面体格子(hex)または”面が分割された六hex

split hex

面体的状格子”(split hex)からなる格子を自動生成する• STL形式等の三角形分割曲面形状に適合した格子が生成できる(辞書で定義される直0方体や球面等の基礎形状も利用可)• 格子の細分割は8分木(2x2x2の分割を再帰的に行う)• 曲面形状や基礎形状の表面の細分割レベル

1
細分割レベル2

三角形分割曲面形状(STL, wavefront OBJなど)を指定できる(表面ベースの細分割)• 細分割領域を曲面形状や基礎形状を用いて別途定義できる (領域ベースの再分割)
表面ベース細分割
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

領域ベース細分割
31

snappyHexMeshの特徴(続き)• STL表面や基礎形状の表面に境界適合す
境界適合(snapping

るように格子を滑らかに移動させることができる• STL表面や基礎形状の表面にレイヤを滑らかに挿入できる•

レイヤ挿入

分割領域毎の格子数をロードバランシン
グしながら，並列に格子生成ができる• 境界適合における特徴辺の再現はVer. 2

特徴線までは実装されておらず、特徴辺は丸くなったが，Ver. 2から特徴辺再現機能が実装され，形状再現性が高まった• 自動格子生成が可能だが，設定が繁雑で，特にレイヤ挿入の設定・制御は困難
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

Ver. 2未満

Ver. 2以降
32

ParaViewとは?
•オープンソース、スケーラブル、かつマルチプラットフォームな可視化ア
プリケーション

•大容量データセットを処理するための分散型計算手法のサポート•オープン、柔軟かつ直感的なユーザインターフェイス•オープンな規格に基づいた拡張性の高いモジュール化構造•柔軟な3条項BSDライセンス•有償の保守およびサポート

ル・マンのレースカー周りの気流(ブラジル リオ・デ・ジャネイロ NACAD/COPPE/UFRJ Renato N. Elias)
図出典：Kenneth Moreland et.al : Large Scale Visualization with ParaView, Supercomputing 2014 Tutorial, November 16, 2014
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

33

ParaViewの3層構造
Client•クライアント✓可視化の作成を担当(GUI)

Data
ServerRenderServerParaView Clien✓オブジェクトの作成、実行、削除を制U御するが実際のデータは全く保持しない✓常にシリアル実行•データ・サーバ•レンダー・サーバ✓データの読込み、フィルタリ✓レンダリングを担当を担当

ング、書出しを担当✓並列実行可能 (内蔵の並列レンダリン✓全てのパイプライン・オブジェ

グ機能が有効化)

OpenGL

クトはデータ・サーバが保持✓並列実行可能図出典：The ParaView Tutorial for Version 4.4
https://www.paraview.org/Wiki/The̲ParaView̲Tutorial

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

34

ParaViewの3層構造
Client

コマンド名

スタンドアローン・モード
DataServer• 全てが統合してシリアル動作

RenderServerparaview

クライアント­サーバ・モード
DataServerRenderServerClientparaview• 並列可視化可能• リモート可視化も可能

pvserver

クライアント­レンダー・サーバ­
Data
ServerRenderServerClientparaview
pvdataserver pvrenderserver

データ・サーバ・モード• サーバ間の通信量が多く，3つが独立動作する利点が少ないので，非推奨

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

35ParaViewによるOpenFOAMデータ可視化✓OpenFOAMの格子や解析結果はParaViewで可視化やデータ解析が可能✓OpenFOAMデータ読み込み方法• OpenFOAM附属のparaFoamコマンド使用 (非推奨)- ParaViewを起動するクライアント側にOpenFOAMの環境が必要- ログインノード上で可視化する場合は通常この方法- ログインノードでの起動は負荷が掛かり，かつX転送は遅いため，非推奨• 通常のParaView(Ver.3.8以降)を使用- ParaViewを起動するクライアント側にOpenFOAMの環境は不要- OpenFOAMのデータを読むには拡張子が.foamのダミーファイルが必要‣ スタンドアローン・モード：スパコン側の格子・解析結果をクライアント側に転送して，クライアント側のParaViewで可視化 (今回はこの方法)‣ クライアント­サーバ・モード：スパコン側で起動したpvserverと，クライア
ント側で起動したParaViewが通信して可視化
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

36OpenFOAMユーザーガイド和訳• 和訳のLaTeXソースや図など全てオープンCAE学会のレポジトリで公開• オープンCAE学会による和訳はOpenFOAM FoundationのWEBに掲載• 現在，3.0.1版まで公開．学会で最新plus版の和訳を計画中
https://gitlab.com/OpenCAE/OpenFOAM
OpenlFOAM
オープンソース [1( ツールボックス

ユーザガイド和訳
wP"@q b|b

一般社団法人 オープン [Tc 学会

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

37

日本版OpenFOAM掲示板
OpenFOAM Googleグループ• 設立：2008年3月• 登録者：959名 (2019/1/7時点)• 質問，情報交換，イベント告知• 匿名で質問可能• 初心者の駆け込み寺
月次投稿数

月次投稿数

200
150
100
50
0

2008/ 4

2009/ 4

2010/ 4

2011/ 4

2012/ 42013/4

2014/4

2015/4

2016/4https://groups.google.com/forum/#!forum/openfoam
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

38

オープンCAE勉強会
1. @関東(流体など)(2010年6月〜)
Ustream配信(初期)，OpenFOAMコード検証勉強会
2. @関西(2010年12月〜)

ほぼ毎月全国6箇所で開催

自作風洞実験，ブックレビュー
3. @岐阜(2011年1月〜)
初心者のみ質問会・夏合宿
4. @富山(2012年5月〜)

発表資料・講習会資料も掲載されているので，WEBサイト
を参照

ミニ講習会・鱒寿司制覇懇親会
5. @広島(2012年7月〜)
ミニ講習会
6. @関東(構造など)(2014年10月〜)
構造解析に特化した勉強会
7. 合同勉強会

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

39

ERCOFTAC SIG15ベンチマーク
オープンCAE学会のレポジトリで実験値との検証ケースを公開．実験値との比較も可能
ERCOFTAC(European Research Community on Flow, Turbulence And
Combustion)内の乱流モデリンググループのワークショップ(ʼ95-ʼ01)で実施したベンチマーク

計29ケースOpenFOAMで10ケースを実施・整備
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

40

市街地風環境べンチマーク
日本建築学会 流体数値計算による風環境評価ガイドライン作成WG が整備
書籍

WEBサイト(実験データや標準計算条件)

OpenFOAM
で6ケースを実施・整備

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

41

工学ナビ
東京大学生産技術研究所・革新的シミュレーション研究センター(センター長：
加藤千幸先生)が制作運営しているWEBサイト

例：新宿副都心高層ビル群の風環境
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

42

OpenFOAM書籍• 発売日：2016年6月17日• 価格：3,456円(税込)• 編集：オープンCAE学会• 出版社：森北出版• 日本初のOpenFOAM本• 書籍名はスハス V.パタンカー(森北出版)の「コンピュータによる熱移動と流れの数値解析」のオマージュ• 第4刷はOpenFOAM-2.4.0, 3.0.x, 4.x,
5.0, 6に対応した脚注あり

東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

43OpenFOAMの主な国内会議• オープンCAEシンポジウム(2010年〜，参加約80〜150名)✓ 主催: オープンCAE学会✓ 2〜3並列 3〜4コマ程度のトレーニング(構造解析・可視化・1DCAEも含む)✓ OF以外の流体解析ツールや構造解析・可視化関連の発表も有る．資料WEB公開✓ 現状OpenFOAM関連の発表件数は日本最大規模．年々増加• OpenFOAM・CAEワークショップ (2013年〜，参加約50〜100名[参加費無料])✓ 主催: 高度情報科学技術研究機構(RIST)✓ HPCI課題による「京」でのOFの事例．RISTによるOFのチューニング．富士通によるコンパイラの最適化などHPC向けの発表．資料WEB公開• ソフトウェアベンダーのユーザ会でのOpenFOAMセッション• オープンCAE学会以外の学会でのOpenFOAMに関する研究発表
学会，ユーザ会，HPC系WSなどで，年々OpenFOAMの発表が増加している
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

44OpenFOAMの主な国際会議• OpenFOAM Workshop(2006年〜，参加約140〜400名)✓ 主催: OpenFOAM Workshop committee✓ 世界最大規模(ドイツ開催時は参加者約400人)✓ 3並列 4コマ程度のトレーニング(参加費に含まれる)✓ Hrvoje Jasakによる基調講演(開発方針など)✓ OFのカスタマイズ例・適用例など発表多数．講習会資料も公開• OpenFOAM User Conference (2013年〜，初回参加222名)✓ 主催: ESI社
✓ 基調講演: OF開発にファンドしているVolkswagen等✓ 開発メンバーによる今後の開発方針，ユーザ適用事例等
多くの発表資料や講習会資料が公開されているので，興味がある分野の資料を検索してみてください
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

45

OpenFOAM関連のmodule
標準でloadされているmoduleの表示
module list
Currently Loaded Modulefiles:
1) impi/2018.1.163
2) intel/2018.1.163

利用可能なmoduleの表示
module avail -l-lオプションは必須ではないが，更新日などの詳細が表示される- Package -----------------------------+- Versions -+- Last mod. -----OFのmoduleはgcc版なので表示されない:

全moduleのunloadと利用可能なmoduleの表示
module purge
module avail -l
gcc/4.8.5
gcc/4.9.4

gcc moduleのload
module load gcc

default

2017/02/22
2017/04/28

5:03:57
9:50:51/バージョンを省略すると，defaultのバージョンが指定される

gcc/4.8.5をloadするとIntel MPIのmodule impi/2017.3.196が自動的にloadされる
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

46OpenFOAM関連のmodule(続き)利用可能なmoduleの表示
module avail -l- Package -----------------------------+- Versions -+- Last mod. -----/home/opt/local/modulefiles/L/mpi/gcc/4.8.5/impi/2017.3.196:
openfoam/3.0.1
default
2017/02/23 5:30:01
openfoam/4.1
2017/07/26 8:43:28
OpenFOAMは3.0.1(デフォルト)と4.1．ビルド環境：Gcc-4.8.5，Intel MPI 2017.3，整数ラベル・
実数変数サイズ64bit．最適化フラグが-O3なので，ログイン/プリポスト/計算ノードで動作する/home/opt/local/modulefiles/L/compiler/gcc/4.8.5:
impi/2017.1.132:
impi/2017.3.196
default
impi/5.1.3.258

2017/02/23

1:54:40

2017/06/30

4:26:35

MPIライブラリはIntel MPI 2017.3がデフォルトで使用される/home/opt/local/modulefiles/L/core:vtune/2016.4.0.470476:
vtune/2018.1.0.535340

2016/11/11 11:34:22
default

2017/12/20

8:29:14

性能プロファイラ(Intel VTune)のmoduleも使用できる
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

47

module版OpenFOAM 4.1の環境設定
module openfoam/4.1のhelp表示
module help openfoam/4.1(2) Make a job script[username@ofp01 ~]$ vi run.sh#!/bin/sh
バッチジョブ独自の設定#PJM -L rscgrp=regular#PJM -L node=1#PJM -L elapse=1:00:00#PJM -jmodule版OF-4.1の環境設定部分
module purge
module load gcc/4.8.5
module load openfoam/4.1
source $WM_PROJECT_DIR/etc/bashrc

標準で有効なmoduleをpurgeで全てunload
Gcc-4.8.5のmoduleをload
OF-4.1のmoduleをload
OpenFOAMの環境設定

module版はKNL独自のバイナリではなく，Intel Xeon機のログイン/プリポストノードでも動作するので，module helpでのjob scriptにおける環境設定部分を実行すれば，ログイン/プリポ
ストノードでもOpenFOAMのコマンドが実行可能(ただし，ログインノードでは並列計算は禁止)
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

48

関連Webサイト[OFF] The OpenFOAM Foundation ( http://www.openfoam.org/ )[OFC] OpenCFD Ltd (ESI Group)( http://www.openfoam.com/ )[OFT] オープンCAE勉強会@関西OpenFOAMチュートリアルドキュメント作成プロジェ
クト( https://sites.google.com/site/freshtamanegi/ )[OCSJ] オープンCAE学会( http://www.opencae.or.jp/ ) OpenFOAMユーザガイド
和訳，プログラマズガイド和訳，The ParaView Tutorial和訳，過去のシンポジウ
ム・ワークショップ・講習会資料[PENGUINITIS] ( http://penguinitis.g1.xrea.com/ ) 圧倒的な情報量[FN365] ( http://caefn.com/) 多くのOpenFOAMに関するスライド(日本語・英語)
も公開[installOpenFOAM] OpenFOAM自動ビルドスクリプト( https://gitlab.com/
OpenCAE/installOpenFOAM/blob/master/README.md ) スパコンでOpenFOAMを自動でビルドする
東京大学情報基盤センタースーパーコンピュータシステムお試しアカウント付き並列プログラミング講習会

49