numerics
Loading...
Searching...
No Matches
mpi_stubs.cpp
Go to the documentation of this file.
2#include <cmath>
3
4namespace num::mpi {
5
6void init(int*, char***) {}
7void finalize() {}
8int rank(MPI_Comm) { return 0; }
9int size(MPI_Comm) { return 1; }
10real dot(const Vector& x, const Vector& y, MPI_Comm) { return num::dot(x, y); }
11real norm(const Vector& x, MPI_Comm) { return num::norm(x); }
13void broadcast(real*, idx, int, MPI_Comm) {}
14
15} // namespace num::mpi
MPI distributed operations.
int MPI_Comm
Definition mpi_ops.hpp:11
void broadcast(real *data, idx n, int root=0, MPI_Comm comm=MPI_COMM_WORLD)
Broadcast from root.
Definition mpi_ops.cpp:33
void allreduce_sum(real *data, idx n, MPI_Comm comm=MPI_COMM_WORLD)
Allreduce sum.
Definition mpi_ops.cpp:29
real norm(const Vector &x, MPI_Comm comm=MPI_COMM_WORLD)
Distributed norm.
Definition mpi_ops.cpp:23
void init(int *argc, char ***argv)
Initialize MPI (call once)
Definition mpi_ops.cpp:6
void finalize()
Finalize MPI.
Definition mpi_ops.cpp:7
int size(MPI_Comm comm=MPI_COMM_WORLD)
Get communicator size.
Definition mpi_ops.cpp:13
int rank(MPI_Comm comm=MPI_COMM_WORLD)
Get communicator rank.
Definition mpi_ops.cpp:9
real dot(const Vector &x, const Vector &y, MPI_Comm comm=MPI_COMM_WORLD)
Distributed dot product (each rank holds partial vector)
Definition mpi_ops.cpp:17
double real
Definition types.hpp:10
std::size_t idx
Definition types.hpp:11
real dot(const Vector &x, const Vector &y, Backend b=default_backend)
dot product
Definition vector.cpp:57
BasicVector< real > Vector
Real-valued dense vector with full backend dispatch (CPU + GPU)
Definition vector.hpp:122
real norm(const Vector &x, Backend b=default_backend)
Euclidean norm.
Definition vector.cpp:69