diff --git a/src/utils/ReproducibleSumMPI.hpp b/src/utils/ReproducibleSumMPI.hpp index d4b80eb5d32384ba14cf49ade607cbf66fcf5632..fc49c051b2bb75985b5dc17aa95e46791717d909 100644 --- a/src/utils/ReproducibleSumMPI.hpp +++ b/src/utils/ReproducibleSumMPI.hpp @@ -43,6 +43,8 @@ allReduceReproducibleSum(const ReproducibleScalarSum<ArrayT, BoolArrayT>& s) BinType sum_bin = zero; MPI_Allreduce(&local_bin, &sum_bin, 1, mpi_bin_type, mpi_bin_sum_op, parallel::Messenger::getInstance().comm()); + MPI_Op_free(&mpi_bin_sum_op); + return sum_bin; } @@ -68,6 +70,8 @@ allReduceReproducibleSum(const ReproducibleTinyVectorSum<ArrayT, BoolArrayT>& s) BinType sum_bin = zero; MPI_Allreduce(&local_bin, &sum_bin, 1, mpi_bin_type, mpi_bin_sum_op, parallel::Messenger::getInstance().comm()); + MPI_Op_free(&mpi_bin_sum_op); + return sum_bin; } @@ -93,6 +97,8 @@ allReduceReproducibleSum(const ReproducibleTinyMatrixSum<ArrayT, BoolArrayT>& s) BinType sum_bin = zero; MPI_Allreduce(&local_bin, &sum_bin, 1, mpi_bin_type, mpi_bin_sum_op, parallel::Messenger::getInstance().comm()); + MPI_Op_free(&mpi_bin_sum_op); + return sum_bin; }