numerics 0.1.0
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) {
9 return 0;
10}
11int size(MPI_Comm) {
12 return 1;
13}
14real dot(const Vector& x, const Vector& y, MPI_Comm) {
15 return num::dot(x, y);
16}
17real norm(const Vector& x, MPI_Comm) {
18 return num::norm(x);
19}
21void broadcast(real*, idx, int, MPI_Comm) {}
22
23} // 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:46
void allreduce_sum(real *data, idx n, MPI_Comm comm=MPI_COMM_WORLD)
Allreduce sum.
Definition mpi_ops.cpp:37
real norm(const Vector &x, MPI_Comm comm=MPI_COMM_WORLD)
Distributed norm.
Definition mpi_ops.cpp:31
void init(int *argc, char ***argv)
Initialize MPI (call once)
Definition mpi_ops.cpp:6
void finalize()
Finalize MPI.
Definition mpi_ops.cpp:9
int size(MPI_Comm comm=MPI_COMM_WORLD)
Get communicator size.
Definition mpi_ops.cpp:19
int rank(MPI_Comm comm=MPI_COMM_WORLD)
Get communicator rank.
Definition mpi_ops.cpp:13
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:25
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:79
BasicVector< real > Vector
Real-valued dense vector with full backend dispatch (CPU + GPU)
Definition vector.hpp:130
real norm(const Vector &x, Backend b=default_backend)
Euclidean norm.
Definition vector.cpp:97