目次

4.5 CUDA+MPIによる並列化

4.5.1 CUDA+MPIプログラム

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

4.5.2 CUDA+MPIの計算時間

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

表4-5-1 CUDA+MPIの計算時間
(1GPU、novectorモード、単精度、()内は1プロセスとの速度比)
プロセス数ベンチマーク200ベンチマーク300ベンチマーク400
116.5秒 (1.0) 54.0秒 (1.0) 126.1秒 (1.0)
222.1秒 (0.75)72.7秒 (0.74)170.3秒 (0.74)