MPI_Reduce (と MPI_Allreduce) ============================= .. literalinclude:: mpi_sample8.cpp :language: c++ :linenos: :download:`Download the source code` MPI_Reduce は各rankが提供するデータに対してなんらかの二項演算を実施します。 総和や最大値、最小値を求める時に利用できます。 MPI_Reduce では二項演算の結果がルートrankでのみ得られますが、MPI_Allreduce を 使うと、結果を全てのrankで受け取ることができます。 openmpi での実行例を示します。:: $ mpic++ -o mpi_sample8 mpi_sample8.cpp $ mpiexec -n 4 mpi_sample8 rank: 0, send_data: [ 0 0 ] rank: 1, send_data: [ 10 0.1 ] rank: 3, send_data: [ 30 0.3 ] rank: 2, send_data: [ 20 0.2 ] rank: 0, recv_data: [ 60 0.6 ]