August 22, 2003
AMD Opteron による大規模解析
計算機が大規模高速化し、EMSolutionでも今までにない大規模な解析のご要望が多くなってきました。従来の32BitのWindows機ですとメモリ使用が2Gbyteで押さえられており、百数十万要素の解析が精一杯でした。この度、アミュレット(株)殿より販売されるAMD Opteron機を借用する機会を得ましたので、大規模解析のベンチマークを行いました。本機は、Linux上で64Bit アーキテクチュアを実現し、4Gbyte以上のメモリを使用することができます。
テスト機の仕様は以下のようになっています。
CPU AMD Opteron Model 242(1.6GHz) * 2 [1]
メモリ 1 GB PC2700(DDR333)Registord ECC DIMM 6Gbyte[4Gbyte]
OS Turbolinux 8 for AMD64
[ ]内は1CPU時
本機で、簡単な静磁場解析問題で、どの程度の大きさまでの解析が可能か調べてみました。最大500万6面体要素の解析が可能であることを確認しました。解析モデルとして、図1の様な直方体に一様磁場を加えた場合の静磁場解析を、分割を変更して行いました。

図 1 Mesh Model(100*100*100メッシュ)
図2に要素数とCPU時間の関係を示します。Pentium 4 2.53GHz, Windows XP, 2Gbyte Memoryとの比較を示します。AMD Opteronでは、2CPUでほぼ同性能を示しました。1CPUでは、その1.6倍程度の性能を得ました。2CPUでの速度の低下の原因は不明ですが、メモリアクセス等で競合が起こっているためかと思われます。

図2計算CPU時間
使用メモリ量は図3のようになっています。同じ計算でPentium機より多くのメモリを要しているのは、プログラムの中でポインターが32Bitより64Bitに大きくなり、それを格納するメモリ量が増えたためです。500万要素でほぼ10Gbyteのメモリを要します。

図3使用メモリ
本機の搭載メモリが2CPU時6Gbyteですので、使用メモリが搭載メモリを超過しており、実行時にページングを起こします。この結果、実行実時間は図4のように長くなります。ただし、使用メモリが搭載メモリの1.5倍程度まではあまり速度の低下は見られませんでした。それ以上になると、急激に実行実時間が大きくなり、実用的では無くなります。図4で最大時583.2万要素の解析を行っていますが、このとき、必要メモリは10GByteを超え、実行実時間は43時間にもなっています。Opteronでは最大12Gbyteのメモリを搭載することができ、1000万要素程度の解析が速度の低下無しに可能かと思われます。

図4. 6 CPU時間と実行実時間
(2CPU, 6Gbyte)
EMSolutionは現状、並列化されていませんので、マルチCPUによる並列化による1ジョブの速度向上は望めません。しかし、2ジョブ以上を同時に実行する場合には計算時間の短縮が予想されます。図5に2CPUにおいて、2ジョブを同時実行した場合の計算時間を示します。100万要素のときは、ほぼ同時に実行が完了し、計算時間の短縮が計れます。しかし、274万要素の時は、実行実時間が一方のジョブでCPU時間の倍くらい必要とされ、結果的には2ジョブをシーケンシャルに実行した方が有利となります。このとき、1ジョブで必要とされるメモリ量は5Gbyte程度ですので、ページングが頻繁に起こり、このような結果となったと思われます。搭載メモリ量を増すことのより、解決されると思われます。

図5. 2ジョブ同時実行時のCPU時間と実行時間(2CPU, 6Gbyte)
本機で12Gbyteのメモリを搭載すれば、1000万要素(6面体)の解析ができそうです。ただ、このベンチマークは線形静磁場の最も簡単な場合です。この場合でも1ステップの解析をするのに4時間以上の計算実時間が必要と考えられます。非線形計算や過渡解析を考えますと、500万要素程度が現実的なところと思われます。