4. EEM-FDMの計算時間

時間領域差分法

CPU1〜8スレッドと1〜2GPUの計算時間を比較します。 ()内はCPU1スレッドとの速度比です(以下同じ)。 なお、計算時間はFDMの本体部のみを計測しています。(DFTとファイル入出力は除いています)
表1はセル数を変えたときの結果です。 CPU1スレッドに比べて1GPUでは36-50倍、2GPUでは57〜92倍速くなります。
マルチGPUでは使用できるメモリーが増えますのでより大規模な計算を行うことができます。

共通条件: 計算領域=200X200X200mm、セルサイズ=λ/15、タイムステップ数=500
ケース1: NX=NY=NZ=200, 周波数=20GHz
ケース2: NX=NY=NZ=300, 周波数=30GHz
ケース3: NX=NY=NZ=400, 周波数=40GHz
ケース4: NX=NY=NZ=500, 周波数=50GHz
ケース5: NX=NY=NZ=600, 周波数=60GHz

表1 EEM-FDMの計算時間(Mur吸収境界条件)
CPU/GPU ケース1 ケース2 ケース3 ケース4 ケース5
CPU 1スレッド135.8秒(1.0) 537.5秒(1.0) 1421.6秒(1.0) 2264.1秒(1.0) 3545.2秒(1.0)
CPU 2スレッド 70.0秒(1.9) 289.3秒(1.9) 740.6秒(1.9) 1225.6秒(1.8) 1870.0秒(1.9)
CPU 4スレッド 52.1秒(2.6) 209.2秒(2.6) 523.3秒(2.7) 933.4秒(2.4) 1424.0秒(2.5)
CPU 8スレッド 47.3秒(2.9) 174.9秒(3.1) 426.8秒(3.3) 809.7秒(2.8) 1298.6秒(2.7)
GPU X 1 3.8秒(35.7) 11.9秒(45.2) 28.7秒(49.5) 55.3秒(40.9)メモリー不足
GPU X 2 2.4秒(56.6) 6.7秒(80.2) 15.5秒(91.7) 29.4秒(77.0)49.6秒(71.5)
必要メモリー 441MB 1,451MB 3,401MB 6,599MB 11,354MB

表2は吸収境界条件をMur/PMLと変えたときの結果です。左の列は表1の第2列と同じです。 表1と同じ傾向であり、速度比は吸収境界条件によらないことがわかります。

表2 EEM-FDMの計算時間(ケース1、吸収境界条件の違い)
CPU/GPU Mur吸収境界条件PML吸収境界条件(5層)
CPU 1スレッド135.8秒(1.0) 175.1秒(1.0)
CPU 8スレッド 47.3秒(2.9) 65.3秒(2.7)
GPU X 1 3.8秒(35.7) 4.6秒(38.1)
GPU X 2 2.4秒(56.6) 2.9秒(60.4)
必要メモリー 441MB 606MB

図1にプロセス数と計算時間の関係を示します。
参考までに FOCUSスパコン のHシステム(Xeon D-1541)の結果も加えています。
CPUではプロセス数が増えると計算時間が短縮されますが、 GPUでは計算時間がより短縮されGPU数が増えるとさらに短縮されます。


図1 プロセス数と計算時間の関係(ケース2)


図2 時間領域差分法の計算モデル

周波数領域差分法

周波数領域差分法の計算時間は表3の通りです。
表3より、CPUのスレッド並列では速度の向上は小さいことがわかります。 これは疎行列の共役勾配法ではベクトル同士の演算(BLASレベル1)の比重が大きくなり、 メモリー帯域がネックになるためと思われます。
一方GPUではメモリー帯域が広いため、CPU1スレッドの13倍速くなります。
なお、周波数領域差分法はマルチGPUに対応していません。 また、周波数領域差分法で用いる共役勾配法では倍精度演算を使用しています。

共通条件:計算領域=200X200X200mm
ケース6: NX=NY=NZ=100, 周波数=3.0GHz, 収束反復回数=1000
ケース7: NX=NY=NZ=150, 周波数=4.5GHz, 収束反復回数=1000
ケース8: NX=NY=NZ=200, 周波数=6.0GHz, 収束反復回数=1000

表3 EEM-FDMの計算時間(周波数領域差分法,E法)
CPU/GPU ケース6 ケース7 ケース8
CPU 1スレッド204.7秒(1.0) 700.4秒(1.0) 1691.3秒(1.0)
CPU 2スレッド146.2秒(1.4) 511.6秒(1.4) 1207.7秒(1.4)
CPU 4スレッド148.1秒(1.4) 492.5秒(1.4) 1163.0秒(1.5)
CPU 8スレッド147.3秒(1.4) 489.3秒(1.4) 1157.5秒(1.5)
GPU X 1 15.3秒(13.4) 53.3秒(13.1) 126.5秒(13.4)
必要メモリー 890MB 2,921MB 6,840MB


図3 周波数領域差分法の計算モデル