Image distributions are used to map incompatible processor row and column distributions. Used to ease storage or transfer between two different-sizes sets. For example, if there are 4 real processor rows that are mapped to 8 "virtual" processor rows, then there are two images for every real processor row.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(dbcsr_distribution_obj), | public | :: | main |
the main distribution |
|||
type(array_i1d_obj), | public | :: | row_image |
distribution of matrix elements' rows into image rows |
|||
type(array_i1d_obj), | public | :: | col_image |
distribution of matrix elements' columns into image columns |
|||
integer, | public | :: | row_decimation | = | -1 |
Number of imaged rows mapped to a real row |
|
integer, | public | :: | col_decimation | = | -1 |
Number of imaged columns mapped to a real column |
|
integer, | public | :: | row_multiplicity | = | -1 |
Number of real rows mapped to a virtual row |
|
integer, | public | :: | col_multiplicity | = | -1 |
Number of real columns mapped to a virtual column |
|
type(array_i1d_obj), | public | :: | vrow_dist | ||||
type(array_i1d_obj), | public | :: | vcol_dist | ||||
type(array_i1d_obj), | public, | DIMENSION(:), POINTER | :: | other_vl_rows | => | Null() | |
type(array_i1d_obj), | public, | DIMENSION(:), POINTER | :: | other_vl_cols | => | Null() | |
type(array_i1d_obj), | public | :: | global_vrow_map | ||||
type(array_i1d_obj), | public | :: | global_vcol_map | ||||
logical, | public | :: | has_other_vl_rows | = | .FALSE. | ||
logical, | public | :: | has_other_vl_cols | = | .FALSE. | ||
logical, | public | :: | has_global_vrow_map | = | .FALSE. | ||
logical, | public | :: | has_global_vcol_map | = | .FALSE. | ||
integer, | public | :: | id | = | -1 | ||
integer, | public | :: | refcount | = | 0 |
count of references |
TYPE dbcsr_imagedistribution_type
!! Image distributions are used to map incompatible processor row and
!! column distributions.
!! Used to ease storage or transfer between two different-sizes
!! sets. For example, if there are 4 real processor rows that are
!! mapped to 8 "virtual" processor rows, then there are two images for
!! every real processor row.
TYPE(dbcsr_distribution_obj) :: main
!! the main distribution
TYPE(array_i1d_obj) :: row_image
!! distribution of matrix elements' rows into image rows
TYPE(array_i1d_obj) :: col_image
!! distribution of matrix elements' columns into image columns
INTEGER :: row_decimation = -1
!! Number of imaged rows mapped to a real row
INTEGER :: col_decimation = -1
!! Number of imaged columns mapped to a real column
INTEGER :: row_multiplicity = -1
!! Number of real rows mapped to a virtual row
INTEGER :: col_multiplicity = -1
!! Number of real columns mapped to a virtual column
TYPE(array_i1d_obj) :: vrow_dist
TYPE(array_i1d_obj) :: vcol_dist
TYPE(array_i1d_obj), DIMENSION(:), POINTER :: other_vl_rows => Null()
TYPE(array_i1d_obj), DIMENSION(:), POINTER :: other_vl_cols => Null()
TYPE(array_i1d_obj) :: global_vrow_map
TYPE(array_i1d_obj) :: global_vcol_map
LOGICAL :: has_other_vl_rows = .FALSE.
LOGICAL :: has_other_vl_cols = .FALSE.
LOGICAL :: has_global_vrow_map = .FALSE.
LOGICAL :: has_global_vcol_map = .FALSE.
INTEGER :: id = -1
INTEGER :: refcount = 0
!! count of references
END TYPE dbcsr_imagedistribution_type