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 | = | dbcsr_distribution_obj() |
the main distribution |
|
type(array_i1d_obj), | public | :: | row_image | = | array_i1d_obj() |
distribution of matrix elements' rows into image rows |
|
type(array_i1d_obj), | public | :: | col_image | = | array_i1d_obj() |
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 | = | array_i1d_obj() | ||
type(array_i1d_obj), | public | :: | vcol_dist | = | array_i1d_obj() | ||
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 | = | array_i1d_obj() | ||
type(array_i1d_obj), | public | :: | global_vcol_map | = | array_i1d_obj() | ||
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 = dbcsr_distribution_obj() !! the main distribution TYPE(array_i1d_obj) :: row_image = array_i1d_obj() !! distribution of matrix elements' rows into image rows TYPE(array_i1d_obj) :: col_image = array_i1d_obj() !! 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 = array_i1d_obj() TYPE(array_i1d_obj) :: vcol_dist = array_i1d_obj() 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 = array_i1d_obj() TYPE(array_i1d_obj) :: global_vcol_map = array_i1d_obj() 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