Matrix Distribution

Typedefs

typedef void *SplaMatrixDistribution

Matrix distribution handle.

Functions

SplaError spla_mat_dis_create_block_cyclic(SplaMatrixDistribution *matDis, 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
  • matDis[out] Matrix distribution handle.

  • 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.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_create_blacs_block_cyclic_from_mapping(SplaMatrixDistribution *matDis, 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
  • matDis[out] Matrix distribution handle.

  • 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.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_destroy(SplaMatrixDistribution *matDis)

Destroy matrix distribution.

Parameters

matDis[in] Matrix distribution handle.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_create_mirror(SplaMatrixDistribution *matDis, MPI_Comm comm)

Create a mirror distribution, where the full matrix is stored on each MPI rank.

Parameters
  • matDis[out] Matrix distribution handle.

  • comm[in] MPI communicator to be used.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_proc_grid_rows(SplaMatrixDistribution matDis, int *procGridRows)

Access a distribution parameter.

Parameters
  • matDis[in] Matrix distribution handle.

  • procGridRows[out] Number of rows in process grid.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_proc_grid_cols(SplaMatrixDistribution matDis, int *procGridCols)

Access a distribution parameter.

Parameters
  • matDis[in] Matrix distribution handle.

  • procGridCols[out] Number of coloumns in process grid.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_row_block_size(SplaMatrixDistribution matDis, int *rowBlockSize)

Access a distribution parameter.

Parameters
  • matDis[in] Matrix distribution handle.

  • rowBlockSize[out] Row block size used for matrix partitioning.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_col_block_size(SplaMatrixDistribution matDis, int *colBlockSize)

Access a distribution parameter.

Parameters
  • matDis[in] Matrix distribution handle.

  • colBlockSize[out] Coloumn block size used for matrix partitioning.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_type(SplaMatrixDistribution matDis, SplaDistributionType *type)

Access a distribution parameter.

Parameters
  • matDis[in] Matrix distribution handle.

  • type[out] Distribution type

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_comm(SplaMatrixDistribution matDis, MPI_Comm *comm)

Access a distribution parameter.

Parameters
  • matDis[in] Matrix distribution handle.

  • comm[out] Communicator used internally. Order of ranks may differ from communicator provided for creation of distribution.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_set_row_block_size(SplaMatrixDistribution matDis, int rowBlockSize)

Set a distribution parameter.

Parameters
  • matDis[in] Matrix distribution handle.

  • rowBlockSize[in] Row block size used for matrix partitioning. provided for creation of distribution.

Returns

Error code or SPLA_SUCCESS.

SplaError spla_mat_dis_set_col_block_size(SplaMatrixDistribution matDis, int colBlockSize)

Set a distribution parameter.

Parameters
  • matDis[in] Matrix distribution handle.

  • colBlockSize[in] Col block size used for matrix partitioning. provided for creation of distribution.

Returns

Error code or SPLA_SUCCESS.