dbcsr_distribution_type Derived Type

type, private :: dbcsr_distribution_type

Matrix distribution on the processor grid


Components

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


Source Code

   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