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 = array_i1d_obj()

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 = array_i1d_obj()

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 = array_i1d_obj()

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 = array_i1d_obj()

list of rows local to the processor grid row list of columns local to the processor grid column

integer, public :: max_row_dist = -1
integer, public :: max_col_dist = -1
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 = array_i1d_obj()

mapping from rows to sequence in local rows (global to local mapping)

type(array_i1d_obj), public :: global_col_map = array_i1d_obj()

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 = array_i1d_obj()

distribution map for rows

type(array_i1d_obj), public :: col_map = array_i1d_obj()

distribution map for columns

logical, public :: has_thread_dist = .FALSE.
type(array_i1d_obj), public :: thread_dist = array_i1d_obj()

thread distribution (of the rows)

integer, public :: num_threads = -1

number of threads in the environment

type(dbcsr_mp_obj), public :: mp_env = dbcsr_mp_obj()

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 = array_i1d_obj(), col_dist_block = array_i1d_obj()
         !! 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 = array_i1d_obj(), local_cols = array_i1d_obj()
         !! list of rows local to the processor grid row
         !! list of columns local to the processor grid column
      INTEGER                                    :: max_row_dist = -1, max_col_dist = -1
      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 = array_i1d_obj()
         !! mapping from rows to sequence in local rows (global to local mapping)
      TYPE(array_i1d_obj)                        :: global_col_map = array_i1d_obj()
         !! 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 = array_i1d_obj()
         !! distribution map for rows
      TYPE(array_i1d_obj)                        :: col_map = array_i1d_obj()
         !! distribution map for columns
      LOGICAL                                    :: has_thread_dist = .FALSE.
      TYPE(array_i1d_obj)                        :: thread_dist = array_i1d_obj()
         !! thread distribution (of the rows)
      INTEGER                                    :: num_threads = -1
         !! number of threads in the environment
      TYPE(dbcsr_mp_obj)                         :: mp_env = dbcsr_mp_obj()
         !! multiprocessor environment on which the distribution is based
      INTEGER                                    :: refcount = 0
         !! reference counter
   END TYPE dbcsr_distribution_type