Matrix Distribution¶
-
class MatrixDistribution¶
- #include <matrix_distribution.hpp>
Public Functions
-
MatrixDistribution(MatrixDistribution&&) = default¶
Default move constructor.
-
MatrixDistribution(const MatrixDistribution&) = default¶
Default copy constructor.
-
MatrixDistribution &operator=(MatrixDistribution&&) = default¶
Default move assignment operator.
-
MatrixDistribution &operator=(const MatrixDistribution&) = default¶
Default copy assignment operator.
-
int proc_grid_rows() const¶
Access a distribution parameter.
- Returns
Number of rows in process grid.
-
int proc_grid_cols() const¶
Access a distribution parameter.
- Returns
Number of coloumns in process grid.
-
int row_block_size() const¶
Access a distribution parameter.
- Returns
Row block size used for matrix partitioning.
-
int col_block_size() const¶
Access a distribution parameter.
- Returns
Coloumn block size used for matrix partitioning.
-
SplaDistributionType type() const¶
Access a distribution parameter.
- Returns
Distribution type
-
MPI_Comm comm()¶
Access a distribution parameter.
- Returns
Communicator used internally. Order of ranks may differ from communicator provided for creation of distribution.
-
void set_row_block_size(int rowBlockSize)¶
Set row block size used for matrix partitioning.
- Parameters
rowBlockSize – [in] Row block size.
-
void set_col_block_size(int colBlockSize)¶
Set coloumn block size used for matrix partitioning.
- Parameters
colBlockSize – [in] Coloumn block size.
Public Static Functions
-
static MatrixDistribution create_blacs_block_cyclic(MPI_Comm comm, char order, int procGridRows, int procGridCols, int rowBlockSize, int colBlockSize)¶
Create a blacs block cyclic matrix distribution with row major or coloumn major ordering of MPI ranks.
- Parameters
comm – [in] MPI communicator to be used.
order – [in] Either ‘R’ for row major ordering or ‘C’ for coloumn major ordering.
procGridRows – [in] Number of rows in process grid.
procGridCols – [in] Number of coloumns in process grid.
rowBlockSize – [in] Row block size for matrix partitioning.
colBlockSize – [in] Coloumn block size for matrix partitioning.
-
static MatrixDistribution create_blacs_block_cyclic_from_mapping(MPI_Comm comm, const int *mapping, int procGridRows, int procGridCols, int rowBlockSize, int colBlockSize)¶
Create a blacs block cyclic matrix distribution with given process grid mapping.
- Parameters
comm – [in] MPI communicator to be used.
mapping – [in] Pointer to array of size procGridRows * procGridCols mapping MPI ranks onto a coloumn major process grid.
procGridRows – [in] Number of rows in process grid.
procGridCols – [in] Number of coloumns in process grid.
rowBlockSize – [in] Row block size for matrix partitioning.
colBlockSize – [in] Coloumn block size for matrix partitioning.
-
static MatrixDistribution create_mirror(MPI_Comm comm)¶
Create a mirror distribution, where the full matrix is stored on each MPI rank.
- Parameters
comm – [in] MPI communicator to be used.
-
MatrixDistribution(MatrixDistribution&&) = default¶