Matrix distribution on the processor grid
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(array_i1d_obj), | public | :: | row_dist_block |
standard row distributions of matrix elements' rows into processor grid rows standard column distributions of matrix elements' columns into processor grid columns |
|||
type(array_i1d_obj), | public | :: | col_dist_block |
standard row distributions of matrix elements' rows into processor grid rows standard column distributions of matrix elements' columns into processor grid columns |
|||
type(array_i1d_obj), | public | :: | local_rows |
list of rows local to the processor grid row list of columns local to the processor grid column |
|||
type(array_i1d_obj), | public | :: | local_cols |
list of rows local to the processor grid row list of columns local to the processor grid column |
|||
integer, | public | :: | max_row_dist | ||||
integer, | public | :: | max_col_dist | ||||
type(array_i1d_obj), | public, | DIMENSION(:), POINTER | :: | other_l_rows | => | Null() |
local rows for each process row |
type(array_i1d_obj), | public, | DIMENSION(:), POINTER | :: | other_l_cols | => | Null() |
local columns for each process column |
logical, | public | :: | has_other_l_rows | = | .FALSE. |
other_rows is defined |
|
logical, | public | :: | has_other_l_cols | = | .FALSE. |
other_cols is defined |
|
type(array_i1d_obj), | public | :: | global_row_map |
mapping from rows to sequence in local rows (global to local mapping) |
|||
type(array_i1d_obj), | public | :: | global_col_map |
mapping from rows to sequence in local columns (global to local mapping) |
|||
logical, | public | :: | has_global_row_map | = | .FALSE. |
whether other_row_map is defined |
|
logical, | public | :: | has_global_col_map | = | .FALSE. |
whether other_col_map is defined |
|
type(array_i1d_obj), | public | :: | row_map |
distribution map for rows |
|||
type(array_i1d_obj), | public | :: | col_map |
distribution map for columns |
|||
logical, | public | :: | has_thread_dist | = | .FALSE. | ||
type(array_i1d_obj), | public | :: | thread_dist |
thread distribution (of the rows) |
|||
integer, | public | :: | num_threads | = | -1 |
number of threads in the environment |
|
type(dbcsr_mp_obj), | public | :: | mp_env |
multiprocessor environment on which the distribution is based |
|||
integer, | public | :: | refcount | = | 0 |
reference counter |
TYPE dbcsr_distribution_type
!! Matrix distribution on the processor grid
TYPE(array_i1d_obj) :: row_dist_block, col_dist_block
!! standard row distributions of matrix elements' rows into processor grid rows
!! standard column distributions of matrix elements' columns into processor grid columns
TYPE(array_i1d_obj) :: local_rows, local_cols
!! list of rows local to the processor grid row
!! list of columns local to the processor grid column
INTEGER :: max_row_dist, max_col_dist
TYPE(array_i1d_obj), DIMENSION(:), POINTER :: other_l_rows => Null()
!! local rows for each process row
TYPE(array_i1d_obj), DIMENSION(:), POINTER :: other_l_cols => Null()
!! local columns for each process column
LOGICAL :: has_other_l_rows = .FALSE.
!! other_rows is defined
LOGICAL :: has_other_l_cols = .FALSE.
!! other_cols is defined
TYPE(array_i1d_obj) :: global_row_map
!! mapping from rows to sequence in local rows (global to local mapping)
TYPE(array_i1d_obj) :: global_col_map
!! mapping from rows to sequence in local columns (global to local mapping)
LOGICAL :: has_global_row_map = .FALSE.
!! whether other_row_map is defined
LOGICAL :: has_global_col_map = .FALSE.
!! whether other_col_map is defined
TYPE(array_i1d_obj) :: row_map
!! distribution map for rows
TYPE(array_i1d_obj) :: col_map
!! distribution map for columns
LOGICAL :: has_thread_dist = .FALSE.
TYPE(array_i1d_obj) :: thread_dist
!! thread distribution (of the rows)
INTEGER :: num_threads = -1
!! number of threads in the environment
TYPE(dbcsr_mp_obj) :: mp_env
!! multiprocessor environment on which the distribution is based
INTEGER :: refcount = 0
!! reference counter
END TYPE dbcsr_distribution_type