6void init(
int*,
char***) {}
MPI distributed operations.
void broadcast(real *data, idx n, int root=0, MPI_Comm comm=MPI_COMM_WORLD)
Broadcast from root.
void allreduce_sum(real *data, idx n, MPI_Comm comm=MPI_COMM_WORLD)
Allreduce sum.
real norm(const Vector &x, MPI_Comm comm=MPI_COMM_WORLD)
Distributed norm.
void init(int *argc, char ***argv)
Initialize MPI (call once)
void finalize()
Finalize MPI.
int size(MPI_Comm comm=MPI_COMM_WORLD)
Get communicator size.
int rank(MPI_Comm comm=MPI_COMM_WORLD)
Get communicator rank.
real dot(const Vector &x, const Vector &y, MPI_Comm comm=MPI_COMM_WORLD)
Distributed dot product (each rank holds partial vector)
real dot(const Vector &x, const Vector &y, Backend b=default_backend)
dot product
BasicVector< real > Vector
Real-valued dense vector with full backend dispatch (CPU + GPU)
real norm(const Vector &x, Backend b=default_backend)
Euclidean norm.