monolish  0.14.2
MONOlithic LIner equation Solvers for Highly-parallel architecture
Scatter.hpp
Go to the documentation of this file.
1 #include "../internal/monolish_internal.hpp"
2 #include "../internal/mpi/mpi_util.hpp"
3 
4 namespace monolish {
5 namespace {
6 // std::vectror
7 template <typename T>
8 void Scatter_core(std::vector<T> &sendvec, std::vector<T> recvvec, int root,
9  MPI_Comm comm) {
10  Logger &logger = Logger::get_instance();
11  logger.util_in(monolish_func);
12 
13 #if defined MONOLISH_USE_MPI
14  MPI_Scatter(sendvec.data(), sendvec.size(),
15  internal::mpi::get_type(sendvec.data()[0]), recvvec.data(),
16  recvvec.size(), internal::mpi::get_type(recvvec.data()[0]), root,
17  comm);
18 #endif
19 
20  logger.util_out();
21 }
22 
23 // monolish::vectror
24 template <typename T>
25 void Scatter_core(monolish::vector<T> &sendvec, monolish::vector<T> recvvec,
26  int root, MPI_Comm comm) {
27  Logger &logger = Logger::get_instance();
28  logger.util_in(monolish_func);
29 
30 #if defined MONOLISH_USE_MPI
31  MPI_Scatter(sendvec.data(), sendvec.size(),
32  internal::mpi::get_type(sendvec.data()[0]), recvvec.data(),
33  recvvec.size(), internal::mpi::get_type(recvvec.data()[0]), root,
34  comm);
35 #endif
36 
37  logger.util_out();
38 }
39 
40 } // namespace
41 } // namespace monolish
monolish_func
#define monolish_func
Definition: monolish_logger.hpp:9
monolish::vector::size
auto size() const
get vector size
Definition: monolish_vector.hpp:312
monolish::vector::data
const Float * data() const
returns a direct pointer to the vector
Definition: monolish_vector.hpp:236
monolish
Definition: monolish_matrix_blas.hpp:10
MPI_Comm
struct ompi_communicator_t * MPI_Comm
Definition: mpi_dummy.hpp:40
monolish::vector
vector class
Definition: monolish_coo.hpp:32
monolish::Logger::get_instance
static Logger & get_instance()
Definition: monolish_logger.hpp:42