monolish
0.16.0
MONOlithic LInear equation Solvers for Highly-parallel architecture
|
Go to the documentation of this file.
54 void Init(
int argc,
char **argv);
106 void Send(
double val,
int dst,
int tag)
const;
114 void Send(
float val,
int dst,
int tag)
const;
122 void Send(
int val,
int dst,
int tag)
const;
130 void Send(
size_t val,
int dst,
int tag)
const;
138 void Send(std::vector<double> &vec,
int dst,
int tag)
const;
146 void Send(std::vector<float> &vec,
int dst,
int tag)
const;
154 void Send(std::vector<int> &vec,
int dst,
int tag)
const;
162 void Send(std::vector<size_t> &vec,
int dst,
int tag)
const;
231 MPI_Status Recv(std::vector<double> &vec,
int src,
int tag)
const;
258 MPI_Status Recv(std::vector<size_t> &vec,
int src,
int tag)
const;
298 void Isend(
double val,
int dst,
int tag);
312 void Isend(
float val,
int dst,
int tag);
326 void Isend(
int val,
int dst,
int tag);
340 void Isend(
size_t val,
int dst,
int tag);
354 void Isend(
const std::vector<double> &vec,
int dst,
int tag);
368 void Isend(
const std::vector<float> &vec,
int dst,
int tag);
382 void Isend(
const std::vector<int> &vec,
int dst,
int tag);
396 void Isend(
const std::vector<size_t> &vec,
int dst,
int tag);
441 void Irecv(
double val,
int src,
int tag);
454 void Irecv(
float val,
int src,
int tag);
467 void Irecv(
int val,
int src,
int tag);
480 void Irecv(
size_t val,
int src,
int tag);
493 void Irecv(std::vector<double> &vec,
int src,
int tag);
506 void Irecv(std::vector<float> &vec,
int src,
int tag);
519 void Irecv(std::vector<int> &vec,
int src,
int tag);
532 void Irecv(std::vector<size_t> &vec,
int src,
int tag);
574 [[nodiscard]]
double Allreduce(
double val)
const;
581 [[nodiscard]]
float Allreduce(
float val)
const;
588 [[nodiscard]]
int Allreduce(
int val)
const;
595 [[nodiscard]]
size_t Allreduce(
size_t val)
const;
715 void Bcast(
double &val,
int root)
const;
723 void Bcast(
float &val,
int root)
const;
731 void Bcast(
int &val,
int root)
const;
739 void Bcast(
size_t &val,
int root)
const;
763 void Bcast(std::vector<double> &vec,
int root)
const;
771 void Bcast(std::vector<float> &vec,
int root)
const;
779 void Bcast(std::vector<int> &vec,
int root)
const;
787 void Bcast(std::vector<size_t> &vec,
int root)
const;
824 void Gather(std::vector<double> &sendvec, std::vector<double> &recvvec,
834 void Gather(std::vector<float> &sendvec, std::vector<float> &recvvec,
844 void Gather(std::vector<int> &sendvec, std::vector<int> &recvvec,
854 void Gather(std::vector<size_t> &sendvec, std::vector<size_t> &recvvec,
892 void Scatter(std::vector<double> &sendvec, std::vector<double> &recvvec,
902 void Scatter(std::vector<float> &sendvec, std::vector<float> &recvvec,
912 void Scatter(std::vector<int> &sendvec, std::vector<int> &recvvec,
922 void Scatter(std::vector<size_t> &sendvec, std::vector<size_t> &recvvec,
void Barrier() const
Blocks until all processes in the communicator have reached this routine.
int get_size()
get the number of processes
double Allreduce_prod(double val) const
MPI_Allreduce (MPI_PROD) for scalar. Combines values from all processes and distributes the result ba...
void Waitall()
Waits for all communications to complete.
void Gather(monolish::vector< double > &sendvec, monolish::vector< double > &recvvec, int root) const
MPI_Gather, Gathers vector from all processes The data is evenly divided and transmitted to each proc...
void Irecv(double val, int src, int tag)
MPI_Irecv for scalar. Performs a nonblocking recv.
MPI_Comm my_comm
MPI communicator, MPI_COMM_WORLD.
double Allreduce(double val) const
MPI_Allreduce (MPI_SUM) for scalar. Combines values from all processes and distributes the result bac...
double Allreduce_min(double val) const
MPI_Allreduce (MPI_MIN) for scalar. Combines values from all processes and distributes the result bac...
double Allreduce_max(double val) const
MPI_Allreduce (MPI_MAX) for scalar. Combines values from all processes and distributes the result bac...
void Isend(double val, int dst, int tag)
MPI_Isend for scalar. Performs a nonblocking send. Requests are stored internally....
struct ompi_communicator_t * MPI_Comm
static comm & get_instance()
bool Initialized() const
Indicates whether MPI_Init has been called.
void Send(double val, int dst, int tag) const
MPI_Send for scalar. Performs a blocking send.
void Bcast(double &val, int root) const
MPI_Bcast, Broadcasts a message from the process with rank root to all other processes.
double Allreduce_sum(double val) const
MPI_Allreduce (MPI_SUM) for scalar. Combines values from all processes and distributes the result bac...
int get_rank()
get my rank number
MPI_Comm get_comm() const
get communicator
comm & operator=(const comm &)=delete
void set_comm(MPI_Comm external_comm)
set communicator
void Scatter(monolish::vector< double > &sendvec, monolish::vector< double > &recvvec, int root) const
MPI_Scatter, Sends data from one task to all tasks. The data is evenly divided and transmitted to eac...
std::vector< MPI_Request > requests
void Finalize()
Terminates MPI execution environment.
void Init()
Initialize the MPI execution environment.
MPI_Status Recv(double val, int src, int tag) const
MPI_Recv for scalar. Performs a blocking recv.