5. 計算時間の測定結果

開発環境は前章で述べた通り、gcc 4.4.7 + OpenMPI 1.6.5とし、計算時間を測定します。

5.1 ハードウェアの比較

平成28年度のハードウェア構成は表5.1の通りです。

表5.1 ハードウェア構成(平成28年度)
項目A(=C)システムD(=E)システム
CPUIntel Xeon L5640 2.26GHz (6コア) x2Intel Xeon E5-2670v2 2.5GHz (10コア) x2
コア数/ノード1220
メモリー/ノード48GB64GB (Eシステム:128GB)
ネットワークInfiniBand QDR (40Gbps)InfiniBand FDR (56Gbps)
利用料(1ノード1時間)100円 (Cシステム:80円)300円

表5.2にCシステムとDシステムで同じ計算をプロセス数を変えて計算したときの計算時間を示します。
CPUの性能はDシステムはCシステムの約2倍です。 かつDシステムのコア数はCシステムの20/12=1.66倍あります。 結局ノード当たりの性能はDシステムはCシステムの3.3倍となります。
以上から、同じ計算を行うときA(=C)システムとDシステムはほぼ同じ利用料金となり、 計算時間は後者は1/3で済みます。 これから並列化性能の高いアプリケーションではDシステムを使用した方が効率がよくなります。

表5.2 ハードウェアと計算時間の関係(benchmark1.ofd)
プロセス数CシステムDシステム比C/D
163.181秒31.489秒2.01
231.690秒15.694秒2.02
416.761秒8.162秒2.05
89.365秒4.507秒2.08
1212.751秒3.373秒3.78
16-2.677秒-
20-2.304秒-

5.2 複数ノード使用時の性能

表5.2と図5.1にノード数を変えたときの計算時間を示します。
入力データのサイズは以下の通りです。
・benchmark2.ofd : セル数=200x200x200、タイムステップ数=2000
・benchmark3.ofd : セル数=400x400x400、タイムステップ数=2000
これより問題のサイズが大きくなると5ノード(=100プロセス)まで速度の向上が見られることがわかります。

表5.2 ノード数と計算時間の関係(Dシステム)
ノード数プロセス数計算時間(benchmark2.ofd)計算時間(benchmark3.ofd)
12028.384秒333.293秒
24016.012秒157.004秒
36012.382秒116.617秒
48011.558秒90.055秒
510011.129秒81.178秒

図5.1 ノード数と計算時間の関係(Dシステム)

5.3 メモリーの上限

OpenFDTDの必要メモリーは30NxNyNzバイトです。 MPIで並列計算するときは個々のノードの必要メモリーはこれをノード数で割ったものになり、 ofd.logに表示される"Memory size [MB]"はこの値です。
この数値がハードウェアの上限を超えると計算に支障が出ます。 その上限はAシステムで48GB/12プロセス=4GB、Dシステムで64GB/20=3.2GBです。
例えばセル数=1000*1000*1000のときは必要メモリーは30GBとなり、 AシステムまたはDシステムの1ノードに収まります。 セル数がさらに大きいときも複数のノードを使用すると計算することができます。 従って、OpenFDTDでは必要メモリーが上限を超えることはまずないと考えて構いません。