/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/common/mpi.hh File Reference#

DiFfRG: /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/common/mpi.hh File Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
mpi.hh File Reference
#include <DiFfRG/common/utils.hh>
#include <deal.II/base/mpi.h>
#include <cstddef>
#include <cstdint>
#include <string>
#include <vector>

Go to the source code of this file.

Namespaces

namespace  DiFfRG
 
namespace  DiFfRG::MPI
 

Functions

bool DiFfRG::MPI::available ()
 Whether this build has MPI and MPI_Init has run. Everything below degrades to a single-rank no-op when this is false, so callers never have to branch on the build type.
 
uint DiFfRG::MPI::rank (MPI_Comm comm)
 
uint DiFfRG::MPI::size (MPI_Comm comm)
 
void DiFfRG::MPI::barrier (MPI_Comm comm)
 
void DiFfRG::MPI::sum_reduce (MPI_Comm comm, int *data, int size)
 
void DiFfRG::MPI::max_reduce (MPI_Comm comm, int *data, int size)
 
void DiFfRG::MPI::min_reduce (MPI_Comm comm, int *data, int size)
 
void DiFfRG::MPI::sum_reduce (MPI_Comm comm, double *data, int size)
 
void DiFfRG::MPI::max_reduce (MPI_Comm comm, double *data, int size)
 
void DiFfRG::MPI::min_reduce (MPI_Comm comm, double *data, int size)
 
int DiFfRG::MPI::sum_reduce (MPI_Comm comm, int value)
 
int DiFfRG::MPI::max_reduce (MPI_Comm comm, int value)
 
int DiFfRG::MPI::min_reduce (MPI_Comm comm, int value)
 
double DiFfRG::MPI::sum_reduce (MPI_Comm comm, double value)
 
double DiFfRG::MPI::max_reduce (MPI_Comm comm, double value)
 
double DiFfRG::MPI::min_reduce (MPI_Comm comm, double value)
 
bool DiFfRG::MPI::any_of (MPI_Comm comm, bool value)
 Collective agreement on a predicate. Used to turn a rank-local decision (an abort, a convergence flag) into one that every rank makes identically – ranks that disagree about control flow enter different numbers of collectives and hang.
 
bool DiFfRG::MPI::all_of (MPI_Comm comm, bool value)
 
bool DiFfRG::MPI::agree (MPI_Comm comm, uint64_t token)
 Whether every rank passed the same token. One collective.
 
void DiFfRG::MPI::bcast (MPI_Comm comm, void *data, size_t bytes, uint root=0)
 Broadcast raw bytes from root to all ranks.
 
void DiFfRG::MPI::allgatherv_bytes (MPI_Comm comm, const void *send, size_t send_bytes, void *recv, const std::vector< int > &recv_counts, const std::vector< int > &displs)
 Concatenating all-gather of byte blocks of differing size.
 
MPI_Comm DiFfRG::MPI::split_shared (MPI_Comm comm)
 A communicator over the ranks sharing this node's memory, for GPU affinity.
 
void DiFfRG::MPI::free_comm (MPI_Comm &comm)
 
void DiFfRG::MPI::abort (MPI_Comm comm, const std::string &message, int code=1)
 Tear the whole job down with a message on stderr.