2010年8月9日月曜日

HA8000(東大T2K)でOpenFOAMを試す

学生さんたちが研究室公開でがんばっているとき,金野はHA8000と格闘していました.

HA8000は東京大学情報基盤センターの共同利用スーパーコンピューターシステムです.工学院大学が専用キュー契約をしたので,2010年度から利用できるようになりました.

5月にはIDをもらったのですが,取り組む時間を取れずにいました.やっと時間が取れたので,ネット情報を探してOpenFOAMをコンパイルし,以前に取り組んだ流れ場解析をHA8000でもやってみた,というわけです.

OpenFOAM-1.7.0を使いました.Googleグループにあった今野先生の投稿内容をまねて,1.7.0のソースに手作業でパッチを当ててコンパイルしたところ,いくつかのアプリケーションはコンパイルできなかったものの,今回の解析に必要なツール(blockMesh, decomposePar, simpleFoam, reconstructPar)は問題なくコンパイルでき,使えるようになりました.

早速それを使って並列計算を回した結果が,ここに示したグラフです.
船体周り流れ場の乱流・非圧縮・定常計算をさせたもので,格子数はざっと300万.
縦軸は解析時間で,短いほど速いということです.
(流れ解析の時間だけを取っています.つまり,ファイルの転送やメッシュ分割,計算結果の再結合などの時間を入れていません.)

グラフ中で,左の2つのデータは,うちの研究室の計算用マシンの結果です.左端のerikaがちょっと古めの4コアマシン,その隣のmeisaが2009年度に導入したXeon X5570×2CPUの8コアマシンです.この2つは,計算にOpenFOAM-1.6を使っています.
右の4つのデータがHA8000を用いた結果で,右から4つめのみがファイルシステムにHSFSを用いたもの.残りの3つはLustreファイルシステムを用いた結果です.右端から順に,64並列(4ノード),32並列(2ノード),16並列(1ノード)での計算結果に対応します.
(HA8000は1ノード16コア.)

むむむ,HA8000ってそんなに速くない!? っていうかmeisaが速すぎ!? 16並列や32並列ではmeisaの8並列(左から2つめ)に敵わず,64並列してやっと上回ることができました.

Xeon X5570の性能はたいへんよいという記事があり,それに期待して昨年度に導入したのが,うちの研究室でmeisaと呼んでいるマシン,DELL Precision T7500です.金野の研究予算では,このへんがいっぱいいっぱいでしたが,よい買い物だったということでしょうか.

一方でHA8000も,64並列まで行けばmeisaを上回っています.工学院大の契約では128並列まで使えるので,もっと短縮できるはずです.そのうち試してみたい.
また,今回は約300万格子の計算でしたが,もっと大規模な計算でメモリをたくさん使いたいときに,分散メモリの並列計算機のメリットが出てくるでしょう.そもそもうちの研究室の計算機では,メモリ不足で計算できない,ということもあるかもしれない.

当面は,研究室のマシンとHA8000とを併用していく予定です.

0 件のコメント:

コメントを投稿