|
KaMPIng 0.2.0
Flexible and (near) zero-overhead C++ bindings for MPI
|
A group of MPI processes. More...
#include <group.hpp>
Public Member Functions | |
| Group (MPI_Group group, bool owning=false) | |
| Constructs a new group from an existing MPI group. | |
| Group (Group const &)=delete | |
| Group | operator= (Group const &)=delete |
| Group (Group &&other) | |
| Move constructor. | |
| Group & | operator= (Group &&other) |
| Move assignment. | |
| template<typename Comm > | |
| Group (Comm const &comm) | |
| Constructs the group associated with a communicator. | |
| ~Group () | |
| Default destructor, freeing the encapsulated group if owned. | |
| GroupEquality | compare (Group const &other) const |
| Compare two groups. | |
| bool | is_identical (Group const &other) const |
| Compare two groups. | |
| bool | is_similar (Group const &other) const |
| Compare two groups. | |
| bool | has_same_ranks (Group const &other) const |
| Compare two groups. | |
| Group | difference (Group const &other) const |
| Makes a group from the difference of two groups. | |
| Group | intersection (Group const &other) const |
| Makes a group from the intersection of two groups. | |
| Group | set_union (Group const &other) const |
| Makes a group from the union of two groups. | |
| std::optional< int > | translate_rank_to_group (int rank_in_this_group, Group const &other_group) const |
| Translates a rank relative to this group to a rank relative to another group. | |
| template<typename In , typename Out > | |
| void | translate_ranks_to_group (In ranks_in_this_group_begin, In ranks_in_this_group_end, Out ranks_in_other_group_begin, Group const &other_group) const |
| Translates multiple ranks relative to this group to ranks relative to another group. | |
| size_t | size () const |
| Get the number of ranks in the group. | |
| size_t | rank () const |
| Get the rank of the calling process in the group. | |
| MPI_Group | mpi_group () const |
| Native MPI_Group handle corresponding to this Group. | |
Static Public Member Functions | |
| static Group | empty () |
| Constructs an empty group. | |
A group of MPI processes.
|
inline |
Compare two groups.
| other | The group to compare with. |
Makes a group from the difference of two groups.
| other | The other group. |
Constructs an empty group.
Compare two groups.
| other | The group to compare with. |
Makes a group from the intersection of two groups.
| other | The other group. |
Compare two groups.
| other | The group to compare with. |
Compare two groups.
| other | The group to compare with. |
|
inline |
Native MPI_Group handle corresponding to this Group.
|
inline |
Get the rank of the calling process in the group.
Makes a group from the union of two groups.
| other | The other group. |
union.
|
inline |
Get the number of ranks in the group.
|
inline |
Translates a rank relative to this group to a rank relative to another group.
| rank_in_this_group | The rank in this group. |
| other_group | The other group. |
|
inline |
Translates multiple ranks relative to this group to ranks relative to another group.
| In | A random access iterator type with int as value type. |
| Out | A random access iterator type with int as value type. |
| ranks_in_this_group_begin | Iterator to the beginning of the ranks in this group. |
| ranks_in_this_group_end | Iterator to the end of the ranks in this group. |
| ranks_in_other_group_begin | Iterator to the beginning of the output ranks in the other group. |
| other_group | The other group. |
ranks_in_other_group_begin. The caller must ensure that there is enough space to write all the output ranks. If a rank is not present in the other group, the corresponding output rank will be set to MPI_UNDEFINED.