3.5 CUDA+MPIによる並列化

3.5.1 GUDA+MPIによる並列化

1台のコンピュータに複数のグラフィックスボードを実装したとき(マルチGPU)と、 複数台のコンピュータに1個または複数のグラフィックスボードを実装したとき、 すべてのグラフィックスボードを使用して並列計算することができます。
CUDAとMPIの両方を実装します。
CUDA版を領域分割に対応して記述していれば、 MPI版の通信関数を利用することにより比較的簡単な作業で実装することができます。
GPU数を増やすと使用できるメモリー容量が増え、 より大きな問題が計算できるようになります。

3.5.2 GUDA+MPIの計算時間

表3-5-1に1GPUで1~2プロセスを起動したときの計算時間を示します。
1プロセスと2プロセスの計算時間が変わらなければ、 2GPUが実装された環境では1GPUの2倍速くなることが予想できます。
表より2プロセスでは1プロセスの約1.35倍の計算時間がかかっているので、 2GPU実装時は1.48(=2/1.35)倍の高速化が予想されます。

表3-5-1 CUDA+MPIの計算時間(1GPU、novectorモード)
プロセス数ベンチマーク400ベンチマーク500ベンチマーク600
16.0秒11.4秒19.3秒
28.2秒15.5秒26.1秒