3.7 ベクトル計算機

3.7.1 ベクトル計算機のプログラム

ベクトル計算機NEC SX-Aurora TSUBASA(以下、SX)を用いた高速化について述べます。
SXは1台にベクトル長256のベクトル演算器を8コア持っています。
内側のループをコンパイラーの自動ベクトル化によってベクトル計算し、 外側のループをOpenMPによって並列計算します。
さらに複数のノードで計算するには領域分割を行いMPIを用いて並列計算します。
本プログラムは前節まででOpenMPとMPIによって並列化されていますので、 ベクトル計算機に対応することは比較的容易です。

3.7.2 ベクトル計算機の計算時間

表3-7-1に1〜2ノードの計算時間を示します。
表より2ノードでは1ノードの2倍近く速くなることがわかります。 また2ノードでは使用可能なメモリーが2倍になり、より大きな問題が計算できるようになります。
セル数が小さいときは計算の速いmatrixモードを使用し、 メモリーが足りなくなったら計算時間は増えますがnomatrixモードを使用してください。

表3-7-1 SXの計算時間(()内は1ノードとの速度比)
ノード数benchmark100benchmark200benchmark300benchmark400
nomatrixmatrixnomatrixmatrixnomatrixmatrixnomatrixmatrix
125.4秒 (1.0) 8.2秒 (1.0) 110.5秒 (1.0)43.9秒 (1.0)406.7秒 (1.0)142.9秒 (1.0)773.9秒 (1.0)メモリー不足
213.3秒 (1.90)4.8秒 (1.70)54.2秒 (2.03)23.7秒 (1.85)199.5秒 (2.03)73.0秒 (1.95)383.8秒 (2.01)158.1秒