| Information | EMSolution HOME |
Dual Core, Quad Core搭載マシンによるパラレル実行ベンチマークテスト | May 9, 2008 |
マルチコア搭載マシンで、EMSolutionによる二つの計算を同時実行した場合と、一つずつ計算を行う場合では、どの程度計算速度に差が出るのかについて、多くのお問い合わせを頂いておりました。そこでこの度、ベンチマークテストを行いました。使用マシンは、Intel Core 2 Duoマシン(32bitで使用)と、Quad Core Intel Xeon×2CPUマシン(64bit)です。共に全てWindowsマシンとなっております。 テスト機の仕様をTableTに示します。使用した実行モジュールは、共にIntel C++/Fortran Compilerを使用しております。
解析モデルは、AMD Opteron による大規模解析 や、32Bit機による線形・非線形大規模解析でも使用した、一辺が1mの立方体解析メッシュとし、中央の非磁性導体に1T、10kHzの交流一様磁場を加える線形交流定常解析です。対称性より、1/8領域を解析します。なお、導体の導電率は5×107S/mで、このときの表皮深さは22.5mmとなります。メッシュ分割数を変更して大規模な解析も実行してみました。解析メッシュの一例をFig.1に示します。

計算を一つのみ実行した場合(1Job)と、同じ計算を同時に二つ実行した場合(2Jobs)の結果を比較します。Fig.2に1Jobと2Jobsの要素数と計算時間の関係を示します。ここで、2Jobs計算時間は平均したものです。Fig3も同様に、1Jobと2Jobsの計算過程(Preprocessing、Making Matrices、Solving Equation、Postprocessing)ごとの要素数と計算時間の関係を示します。ここで、要素数のみは1Jobを表し、“要素数”_“数字”は、2Jobsを表します。
1Jobの結果は、Core 2 Duoは32bitマシンであるため、ほぼ2GBメモリ使用する729,000要素の計算が限界でした。Intel Xeonでは、3,375,000要素まで計算できましたが、使用メモリが搭載メモリ8GBを超え仮想メモリを使用しているため、極端に計算速度が落ちています。マシン間で比較しますと、Core 2 Duoマシンの方がIntel Xeonに比べてTotalの計算時間、特にSolving Equationが速いことがわかります。しかし、Intel Xeonの方がCore 2 Duoに比べ、Solving Equation以外は速くなっております。Core 2 Duoの方が演算処理は速く、Intel Xeonの方がファイルIOは速いと思われます。過渡解析ではSolving Equationの時間が非常に長くなるため、より差が出てくると思われます。
2Jobsの結果は、Core 2 DuoとIntel Xeonはほぼ同じで、ややIntel Xeonの方が速くなっています。1Jobの結果と比較すると、Core 2 Duoでは216,000、512,000要素では1計算当たりおよそ55%程度、729,000要素では123%も計算時間が増加していますが、Intel Xeonでは10〜13%程度しか変わりません。これは、Intel Xeonは2CPUであり、Quad Coreであるためとも考えられますが、CPUの仕様による違いとも考えられるため、判定はできません。Core 2 Duoでは搭載メモリ4GBですが、実際にPCが認識しているのは3.23GBであるため、729,000要素の結果では使用メモリが4GB程度となり、使用可能な搭載メモリを超えており、仮想メモリを使用しているため計算時間がかなり増加してしまっていると思われます。

![]() | ![]() |
| (i) Core 2 Duo | (ii) Intel Xeon |
| Fig.3 計算時間の詳細比較 | |
Fig.4に、1Jobsでの要素数と使用メモリの関係を示します。同じ計算条件でもCore 2 DuoとIntel Xeonでは32bit、64bitの違いがあるにも関わらず、ほぼ同じ使用メモリとなっております。これは、複素数解析であるためと思われます。非線形過渡解析のような場合では、この傾向は変わってくると思われます。Intel Xeonでは、搭載メモリ8GBですが、それを超えた計算もできてはいますが、上述したように、計算時間は極端に増加します。

次に、Intel Xeonを使用し、メモリを2GB程度使用する729,000要素で、4Jobs、8Jobsパラレル実行した場合の結果を示します。Fig.5に、Jobごとの計算時間を示します。これより、4JobsではJob間で計算時間にそれ程差は見られませんが、8Jobsすると、大きく差が出てきており、メモリを多く使用するMaking Matricesで非常に時間がかかっているケースが多く見られます。これは、搭載メモリが8GBであるため、4Jobsでは少しの仮想メモリを使用する程度で済みますが、8Jobsでは搭載メモリを大きく超え、仮想メモリを使用しているのが主原因であると考えられます。Fig.6に、パラレル実行の平均計算時間を、1Jobの結果と比較して示します。これより、2Jobs、4Jobs、8Jobsは、1Jobsと比べて、それぞれ10%、81%、284%の計算時間が増加しています。これより、全てのJobで使用するメモリが、搭載メモリ程度の計算であれば、一つずつ計算を実行するよりも高速に結果を得られることがわかります。


これより、基本的にCPUの性能差が出ていますが、Core 2 Duo、Intel Xeonの傾向がお分かりいただけるかと思います。パラレル実行ではTotalで使用メモリが搭載メモリを上回った場合は計算時間が非常に低下します。また、Job数が多い場合も、メモリ取得やファイルIOのタイミングにより、非常に計算時間が低下してしまうようです。
これらを新規解析、または購入時の参考にして頂ければ幸いです。