3.8 各手法の比較

3.8.1 計算時間

図3-8-1に各手法の計算時間を示します。
CPUではOpenMPとMPIともにコア数を増やすと10倍程度速くなります。
GPUとSXはCPUに比べて大幅に速く、2ノードでさらに計算時間を短縮できることがわかります。


図3-8-1 各手法の計算時間

3.8.2 計算時間の内訳

計算時間の内訳は以下の通りです。
CPUではnomatrixモードでは行列ベクトル積の時間が増えるのでその比率が上がります。
GPUではその比率はあまり上がりません。
なお、ベクトル演算の計算時間はmatrixモードとnomatrixモードで同じです。


(a) matrixモード


(b) nomatrixモード

図3-8-2 計算時間の内訳

3.8.3 使用メモリー

使用メモリーは以下の通りです。
ただし、Nf:周波数の数、Ne=3*Nx*Ny*Nz:行列の大きさ、Np:プロセス数 です。

CPU:
matrixモード: 8*Nf*Ne + 322*Ne/Np [バイト]
nomatrixモード: 8*Nf*Ne + 114*Ne/Np [バイト]

GPU:
matrixモード: 322*Ne/Np [バイト]
nomatrixモード: 114*Ne/Np [バイト]

例えば、周波数の数=1、Nx=Ny=Nz=100、プロセス数=1のときの使用メモリーは、 matrixモードで約1GB、nomatrixモードで約0.3GBです。

3.8.4 モードの選択

環境と問題に応じて以下のモードを選択してください。

(1) matrixモード
以下のすべてが該当するとき選択してください
・CPUで20コア以下のとき
・問題のサイズがメモリーに収まるとき

(2) nomatrixモード
以下の「いずれか」のとき選択してください
・GPU
・CPUで20コア以上のとき
・問題のサイズが大きくてmatrixモードで計算できないとき