Skip to content
Snippets Groups Projects
Commit 18efe695 authored by Thomas Purcell's avatar Thomas Purcell
Browse files

removed all gather from sisso regressor

parent 75513ce2
No related branches found
No related tags found
No related merge requests found
......@@ -176,11 +176,24 @@ void SISSORegressor::l0_norm(std::vector<double>& prop, int n_dim)
} while(util_funcs::iterate(inds, inds.size(), _mpi_comm->size()));
std::vector<double> all_min_error(_mpi_comm->size() * _n_residual);
// std::vector<std::vector<std::vector<int>>> all_inds_min;
std::vector<int> all_inds_min(_mpi_comm->size() *_n_residual * n_dim);
mpi::all_gather(*_mpi_comm, min_errors.data(), _n_residual, all_min_error);
mpi::all_gather(*_mpi_comm, inds_min.data(), _n_residual * n_dim, all_inds_min);
if(_mpi_comm->rank() == 0)
{
mpi::gather(*_mpi_comm, min_errors.data(), min_errors.size(), all_min_error.data(), 0);
mpi::broadcast(*_mpi_comm, all_min_error.data(), all_min_error.size(), 0);
mpi::gather(*_mpi_comm, inds_min.data(), inds_min.size(), all_inds_min.data(), 0);
mpi::broadcast(*_mpi_comm, all_inds_min.data(), all_inds_min.size(), 0);
}
else
{
mpi::gather(*_mpi_comm, min_errors.data(), min_errors.size(), 0);
mpi::broadcast(*_mpi_comm, all_min_error.data(), all_min_error.size(), 0);
mpi::gather(*_mpi_comm, inds_min.data(), inds_min.size(), 0);
mpi::broadcast(*_mpi_comm, all_inds_min.data(), all_inds_min.size(), 0);
}
inds = util_funcs::argsort(all_min_error);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment