65 const std::vector<RankSizePair*>& _partsToRanks,
bool operator==(const PartDescriptor &a, const PartDescriptor &b)
Layout
Definition: part_descriptor.hpp:20
@ LayoutRowMajor
Definition: part_descriptor.hpp:22
@ LayoutColMajor
Definition: part_descriptor.hpp:24
std::ostream & operator<<(std::ostream &os, const PartDescriptor &desc)
Definition: comm_utils.h:11
Definition: part_descriptor.hpp:40
friend bool operator==(const PartDescriptor &a, const PartDescriptor &b)
int rank
Definition: part_descriptor.hpp:46
std::vector< size_t > startIndices(int rank) const
int totalBlocks() const
Definition: part_descriptor.hpp:70
std::vector< RankSizePair * > blocksOwnedBy(int rank) const
Returns the vector of blocks (each identified by linearBLockIndex) owned by the given rank.
size_t totalElementsOwnedBy(int rank) const
std::vector< RankSizePair * > partsToRanks
Definition: part_descriptor.hpp:50
std::vector< size_t > startIndices() const
PartDescriptor(size_t _M, size_t _N, const std::vector< RankSizePair * > &_partsToRanks, int rank, Layout _layout=LayoutColMajor)
For a given matrix and block-sizes construct the corresponding descriptor for it. This is useful when...
size_t N
Definition: part_descriptor.hpp:44
std::set< int > uniqueRanks()
int totalBlocksOwnedBy(int rank) const
size_t M
Definition: part_descriptor.hpp:42
Layout layout
Definition: part_descriptor.hpp:48
friend std::ostream & operator<<(std::ostream &os, const PartDescriptor &desc)
Definition: part_descriptor.hpp:27
RankSizePair(int _rank, size_t _size)
Definition: part_descriptor.hpp:30
int rank
Definition: part_descriptor.hpp:32
size_t size
Definition: part_descriptor.hpp:37
RankSizePair()
Definition: part_descriptor.hpp:28