OpenFOAM on Windowsの 実 力 と 構 築 技 術 2011.7.19 19 第 5 回 ものづくり 支 援 システムDEXCS 研 究 会 株 式 会 社 計 算 力 学 研 究 センター 金 田 誠 1
OpenFOAM onwindowsとは ネイティブWindows 上 で 動 くOpenFOAM OpenFOAM Wikiのビルド 法 Symscape 社 のビルド 法 開 発 元 bluecape 社 Symscape 社 バイナリの 商 品 名 bluecfd OpenFlow Windows OS 32ビット 64ビット 64ビット 並 列 計 算 MPICH2 MS MPI MPI (MS MPIにアレンジ 可 能 ) GPU(CUDA) バイナリ(= 動 くプログラム)は 有 償 ですが オープンソースです す パッチとビルド 方 法 が 公 開 されています OpenFOAM Wikiの 方 法 : http://openfoamwiki.net/index.php/tip_cross_compiling_openfoam_1.7_in_linnet/index php/tip Compiling in ux_for_windows_with_mingw Symscape 社 の 方 法 : http://www.symscape.com/openfoam 1 7 x on windows 64 mpi com/openfoam on windows mpi 5
OpenFOAM on Windowsを を 使 ってみる 1 格 子 生 成 pitzdailyケースのディレクトリに 移 動 領 域 分 割 のための 設 定 ファイルを 準 備 blockmeshコマンドを 実 行 して 格 子 生 成 6
OpenFOAM on Windowsを を 使 ってみる 2 領 域 分 割 decomposeparコマンドを 実 行 して 並 列 計 算 のため に 領 域 分 割 ここでは4 並 列 で 計 算 するので 4つの 領 域 に 分 割 7
OpenFOAM on Windowsを を 使 ってみる 3ソルバを 実 行 MS-MPIを MPIを 使 って pisofoamソルバを4 並 列 で 実 行 8
OpenFOAM on Windowsを を 使 ってみる 4 並 列 計 算 の 結 果 を 統 合 reconstructparコマンドを 実 行 して 並 列 計 算 用 に 分 解 されたフィールドとメッシュを 統 合 9
OpenFOAM on Windowsを を 使 ってみる 5 可 視 化 (1) pitzdaily.foam という 名 前 の 空 のファイルを 作 成 ParaViewでこのファイルを 開 くと 計 算 結 果 が 可 視 化 される 10
OpenFOAM on Windowsを を 使 ってみる 6 可 視 化 (2) 11
OpenFOAMのプラットフォームによる 制 限 事 項 Linux 実 機 VMware Player OpenFOAM on Windows 最 大 CPUコア 数 MPIの 上 限 4 MPIの 上 限 GPU 計 算 (?) OpenFOAMの バージョン foamスクリプト (bashスクリプト) 最 新 バージョンが 使 える 最 新 バージョンが 使 える OpenFOAM Wiki:1.7.0 Symscape 社 :1.7.x コマンドプロンプトで MSYSで (?) pyfoam MSYSとは Windows 上 で 動 作 するUnixコマンド Cygwinと 似 ているが クロスコンパイルされた 今 回 の OpenFOAM on Windowsは Cygwinでは 動 かない 12
ベンチマークテスト 実 施 ケース : incompressible/pisofoam/les/pitzdaily 非 圧 縮 非 定 常 LESのpitzDailyチュートリアル i D il 計 算 ステップ 数 100 領 域 分 割 の 方 法 scotch Solver p : PCG(CPU) PCGgpu(GPU) p 以 外 : PBiCG(CPU) PBiCGgpu(GPU) ( ( ) Preconditioner diagonal GPU 計 算 で 使 えるsolverとpreconditionerの 種 類 には 制 限 があり CPU 計 算 でもGPUと 同 じものを 使 用 した CPU 計 算 では 他 の solverとpreconditionerも 使 えるので CPU 計 算 に 関 してはチュー ニングの 余 地 がある GPU 計 算 では 1pの 計 算 のみGPUを 使 用 2p 以 外 の 計 算 も GPUを を 使 用 の2パターンを 試 したところ 2p 以 外 もGPUを 使 用 し た 方 が 若 干 速 度 が 速 かったため 2で 統 一 した 13
ベンチマークテスト 全 結 果 ( 全 て64ビット) 単 位 : 秒 1 1 5 5 10 10 20 20 12,000セルセ 30 万 セル 120 万 セル 480 万 セル (1) Linux 32.6 1782 7285 34720 (2) Linux 4 並 列 10.2 571 3335 13483 (3) Linux 1GPU 93.5 383 1187 4783 (4) Linux 1GPU 単 精 度 98.8 290 726 2838 (5) Windows(Sym) 24.7 1815 9287 37832 (6) Windows(Sym) 4 並 列 8.3 612 3890 16072 (7) Windows(Sym) 1GPU 142.7 692 1693 5194 (8) Windows(Wiki) 38.2 2256 9629 38640 (9) Windows(Wiki) 4 並 列 13.5 776 4195 16171 5 5 は 格 子 セル 数 をx 方 向 に5 倍 y 方 向 に5 倍 したことを 表 す Windows(Sym)は Symscape 社 の 方 法 でビルドしたOpenFOAM on Windows Windows(Wiki)は OpenFOAM Wikiの 方 法 でビルドしたOpenFOAM on Windows MPIは LinuxはOpenMPI で WindowsはMS-MPI 15
ベンチマークテスト (1) Linux 版 とWindows 版 の 比 較 単 位 : 秒 1 1 12,000セルセ 5 5 30 万 セル 10 10 120 万 セル 20 20 480 万 セル (1) Linux 1782 7285 34720 (2) Linux 4 並 列 571 3335 13483 (3) Linux 1GPU 383 1187 4783 (5) Windows(Sym) 1815 9287 37832 (6) Windows(Sym) 4 並 列 612 3890 16072 (7) Windows(Sym) 1GPU 692 1693 5194 体 感 的 にはWindows 版 は 非 常 に 遅 く 感 じるが..? 起 動 には 時 間 がかかるが 計 算 が 始 まってしまえばそれほどでもない 対 話 的 に 何 度 もコマンドを 起 動 する 場 合 は 起 動 の 遅 さが 気 になる 16
ベンチマークテスト (2) 逐 次 計 算 と 並 列 計 算 の 比 較 単 位 : 秒 1 1 5 5 10 10 20 20 12,000セルセ 30 万 セル 120 万 セル 480 万 セル (1) Linux 32.6 1782 7285 34720 (2) Linux 4 並 列 10.2 571 3335 13483 (3) Linux 1GPU 93.5 383 1187 4783 (5) Windows(Sym) 24.7 1815 9287 37832 (6) Windows(Sym) 4 並 列 8.3 612 3890 16072 (7) Windows(Sym) 1GPU 142.7 692 1693 5194 逐 次 計 算 と4 並 列 の 比 較 : (1)と(2) (5)と(6) だいたい4 並 列 の 数 字 になっている 4 並 列 と1GPUの 比 較 : (2)と(3) (6)と(7) 格 子 セル 数 が 増 えると 4 並 列 より1GPUが 速 くなった 17
ベンチマークテスト (3) Simscape 社 とOpenFOAM Wikiの の 比 較 単 位 : 秒 1 1 5 5 10 10 20 20 12,000セルセ 30 万 セル 120 万 セル 480 万 セル (5) Windows(Sym) 1815 9287 37832 (6) Windows(Sym) 4 並 列 612 3890 16072 (8) Windows(Wiki) 2256 9629 38640 (9) Windows(Wiki) 4 並 列 776 4195 16171 逐 次 処 理 の 比 較 : (5)と(8) 4 並 列 の 比 較 : (6)と(9) いずれもSymscapeが 若 干 速 いが 480 万 セルの 格 子 ではあまり 差 がない 18
ベンチマークテスト ( 参 考 ) GPUの の 倍 精 度 と 単 精 度 の 比 較 単 位 : 秒 1 1 5 5 10 10 20 20 12,000セルセ 30 万 セル 120 万 セル 480 万 セル (3) Linux 1GPU 383 1187 4783 (4) Linux 1GPU 単 精 度 290 726 2838 単 精 度 の 方 が 速 いが 単 精 度 にすると 収 束 が 悪 くなったり 計 算 が 発 散 しやすくなる 19
OpenFOAM on Windowsの の 構 築 技 術 ビルドとは(1) コンパイルとは ソースコード( 人 間 が 作 成 したプログラム)をオブジェクトコー ド(コンピュータが 理 解 できる 形 式 )に 変 換 ライブラリとは 頻 繁 に 使 うオブジェクトコードを 再 利 用 できる 形 にまとめた もの 静 的 ライブラリ Linux lib*.a lib*.so Windows *.lib *.dll 動 的 ライブラリ 22
OpenFOAM on Windowsの の 構 築 技 術 ビルドとは(2) リンクとは 必 要 なオブジェクトコードとライブラリを 連 結 して 実 行 可 能 ファイルを 生 成 ビルドとは コンパイルからリンクまで 一 連 の 作 業 をすべて 行 う makeとは ビルドを 行 うためのツール 23
OpenFOAM on Windowsの の 構 築 技 術 Autoconf GNUが 配 布 しているソフトウェアパッケージを ソースコードから インストールするときの 流 れ: %./configure % make % sudo make install 1 configureスクリプトを 実 行 して 環 境 に 適 応 したMakefileを 生 成 2 生 成 されたMakefileを 使 ってmakeを 実 行 し ビルドする 3 ビルド 結 果 をインストール 先 にコピー 24
OpenFOAM on Windowsの の 構 築 技 術 クロスコンパイル クロスコンパイルとは コンパイラが 動 作 している 以 外 のプラットフォーム 向 けに 実 行 可 能 ファイルを 生 成 すること OpenFOAM on Windowsでは Linux は 環 境 でWindows 用 の 実 行 可 能 ファイルを 生 成 する 32ビット MinGW mingw32 クロスコンパイラ mingw w32 mingw w64 クロスコンパイラ i686 w64 mingw32 64ビット mingw w64 x86_64 w64 mingw32 25
OpenFOAM on Windowsの の 構 築 技 術 8 月 の 予 告 OpenFOAM on Windowsのバイナリは 商 品 化 されているため 配 布 いたしません あしからずご 了 承 ください ご 利 用 になりたい 方 は ソースからビルドされるようお 願 いい たします オープンCAE 初 心 者 勉 強 会 の 夏 の 合 宿 2011 (8/27~28)に ご 参 加 される 方 は OpenFOAM on Windowsのビルドをご 体 験 いただけます 作 業 は VMWare Player 上 で 行 います すぐにビルドなさりたい 方 のために DVDをご 用 意 します( 希 望 される 方 のみ) 26
OpenFOAM on Windowsの の 構 築 技 術 DVDの 使 用 法 (1) Symscape 社 の 方 法 (64ビット)と OpenFOAM WIki の 方 法 (32 ビット)をご 用 意 しました 全 体 のビルド 作 業 を 7つのステップに 分 割 しました 作 業 手 順 は step*.txtに 書 かれています step*.txtのエンコードの 種 類 はUTF 8で 仮 想 マシンのホー ムディレクトリにも 入 れてあります 27
OpenFOAM on Windowsの の 構 築 技 術 DVDの 使 用 法 (2) step*.txtの 作 業 が 終 了 した 時 点 で VMWare Playerの 仮 想 ディ スクをstep*.rarにRAR 形 式 で 圧 縮 しました 今 回 のDVDではstep2.rar(step2まで 終 わっています)を 配 布 しますので step3 以 降 をすぐにお 試 しいただけます RAR 形 式 のファイルは WinRAR 等 のアーカイバを 使 って 解 凍 できます http://www.diana.dti.ne.jp/~winrar/ RARファイルの 中 に4Gバイト 超 のファイルが 含 まれていますの で 解 凍 するときはNTFSファイルシステムのドライブをご 使 用 ください 28
OpenFOAM on Windowsの の 構 築 技 術 DVDの 使 用 法 (3) 仮 想 マシンを 立 ち 上 げて 左 のように 表 示 されたら コピーし ました を 選 択 すれ ば OKです 29
OpenFOAM on Windowsの の 構 築 技 術 DVDの 使 用 法 (4) ホストマシンとゲ ストマシン 間 の 共 有 フォルダを 有 効 にするには 仮 想 マシンの 設 定 を 立 ち 上 げます パスワードは ubuntu です 30
OpenFOAM on Windowsの の 構 築 技 術 DVDの 使 用 法 (5) オプションタブ 共 有 フォルダを 選 択 し フォルダの 共 有 で 常 に 有 効 を 選 択 すれば 共 有 フォル ダを 有 効 にできます ホストパス 等 も 自 分 好 みに 変 更 できます 31
OpenFOAM on Windowsの の 構 築 技 術 DVDの 使 用 法 (6) Linux 上 で gedit 等 で$HOME/step*.txtを t * t tを 開 き 実 行 したい 処 理 を 選 択 して..( 続 く) 32
OpenFOAM on Windowsの の 構 築 技 術 DVDの 使 用 法 (7) 端 末 でマウスの 中 ボタンをクリックして クして 貼 り 付 けます エラーメッセージが 出 ないかご 確 認 ください 33