|
static unsigned int | rank (MPI_Comm comm) |
| Return process rank for the communicator.
|
|
static unsigned int | size (MPI_Comm comm) |
|
static bool | is_broadcaster (MPI_Comm comm) |
|
static bool | is_receiver (MPI_Comm comm) |
|
static void | barrier (MPI_Comm comm) |
| Set a barrier (synchronization point)
|
|
template<typename T > |
static void | all_to_all (MPI_Comm comm, std::vector< std::vector< T >> &in_values, std::vector< std::vector< T >> &out_values) |
|
template<typename T > |
static void | all_to_all (MPI_Comm comm, std::vector< std::vector< T >> &in_values, std::vector< T > &out_values) |
|
template<typename T > |
static void | broadcast (MPI_Comm comm, std::vector< T > &value, unsigned int broadcaster=0) |
| Broadcast vector of value from broadcaster to all processes.
|
|
template<typename T > |
static void | broadcast (MPI_Comm comm, T &value, unsigned int broadcaster=0) |
| Broadcast single primitive from broadcaster to all processes.
|
|
template<typename T > |
static void | scatter (MPI_Comm comm, const std::vector< std::vector< T >> &in_values, std::vector< T > &out_value, unsigned int sending_process=0) |
| Scatter vector in_values[i] to process i.
|
|
template<typename T > |
static void | scatter (MPI_Comm comm, const std::vector< T > &in_values, T &out_value, unsigned int sending_process=0) |
| Scatter primitive in_values[i] to process i.
|
|
template<typename T > |
static void | gather (MPI_Comm comm, const std::vector< T > &in_values, std::vector< T > &out_values, unsigned int receiving_process=0) |
| Gather values on one process.
|
|
static void | gather (MPI_Comm comm, const std::string &in_values, std::vector< std::string > &out_values, unsigned int receiving_process=0) |
| Gather strings on one process.
|
|
template<typename T > |
static void | all_gather (MPI_Comm comm, const std::vector< T > &in_values, std::vector< T > &out_values) |
|
template<typename T > |
static void | all_gather (MPI_Comm comm, const std::vector< T > &in_values, std::vector< std::vector< T >> &out_values) |
| Gather values from each process (variable count per process)
|
|
template<typename T > |
static void | all_gather (MPI_Comm comm, const T in_value, std::vector< T > &out_values) |
| Gather values, one primitive from each process (MPI_Allgather)
|
|
static void | all_gather (MPI_Comm comm, const std::string &in_values, std::vector< std::string > &out_values) |
|
template<typename T > |
static T | max (MPI_Comm comm, const T &value) |
| Return global max value.
|
|
template<typename T > |
static T | min (MPI_Comm comm, const T &value) |
| Return global min value.
|
|
template<typename T > |
static T | sum (MPI_Comm comm, const T &value) |
| Sum values and return sum.
|
|
template<typename T > |
static T | avg (MPI_Comm comm, const T &value) |
| Return average across comm; implemented only for T == Table.
|
|
template<typename T , typename X > |
static T | all_reduce (MPI_Comm comm, const T &value, X op) |
| All reduce.
|
|
static std::size_t | global_offset (MPI_Comm comm, std::size_t range, bool exclusive) |
|
template<typename T > |
static void | send_recv (MPI_Comm comm, const std::vector< T > &send_value, unsigned int dest, int send_tag, std::vector< T > &recv_value, unsigned int source, int recv_tag) |
| Send-receive data between processes (blocking)
|
|
template<typename T > |
static void | send_recv (MPI_Comm comm, const std::vector< T > &send_value, unsigned int dest, std::vector< T > &recv_value, unsigned int source) |
| Send-receive data between processes.
|
|
static std::pair< std::int64_t, std::int64_t > | local_range (MPI_Comm comm, std::int64_t N) |
|
static std::pair< std::int64_t, std::int64_t > | local_range (MPI_Comm comm, int process, std::int64_t N) |
|
static std::pair< std::int64_t, std::int64_t > | compute_local_range (int process, std::int64_t N, int size) |
|
static unsigned int | index_owner (MPI_Comm comm, std::size_t index, std::size_t N) |
| Return which process owns index (inverse of local_range)
|
|
static MPI_Op | MPI_AVG () |
|
This class provides utility functions for easy communication with MPI and handles cases when DOLFIN is not configured with MPI.