dbcsr_dist_methods Module

Routines related to DBCSR distributions



Variables

Type Visibility Attributes Name Initial
character(len=*), private, parameter :: moduleN = 'dbcsr_dist_methods'

Interfaces

public interface dbcsr_distribution_new

  • private subroutine dbcsr_distribution_new_template(dist, template, group, pgrid, row_dist, col_dist, reuse_arrays)

    Creates new distribution from a template distribution

    Arguments

    Type IntentOptional Attributes Name
    type(dbcsr_distribution_obj), intent(out) :: dist

    distribution

    type(dbcsr_distribution_obj), intent(in), optional :: template
    type(mp_comm_type), intent(in), optional :: group
    integer, optional, DIMENSION(:, :), POINTER :: pgrid
    integer, intent(in), DIMENSION(:), POINTER, CONTIGUOUS :: row_dist
    integer, intent(in), DIMENSION(:), POINTER, CONTIGUOUS :: col_dist
    logical, intent(in), optional :: reuse_arrays
  • private subroutine dbcsr_distribution_new_obj(dist, mp_env, row_dist_block, col_dist_block, local_rows, local_cols)

    Creates new distribution Workaround for CCE compilation

    Arguments

    Type IntentOptional Attributes Name
    type(dbcsr_distribution_obj), intent(out) :: dist

    distribution

    type(dbcsr_mp_obj), intent(in) :: mp_env

    multiprocessing environment

    type(array_i1d_obj), intent(in) :: row_dist_block
    type(array_i1d_obj), intent(in) :: col_dist_block
    type(array_i1d_obj), intent(in), optional :: local_rows
    type(array_i1d_obj), intent(in), optional :: local_cols
  • private subroutine dbcsr_distribution_new_low(dist, mp_env, row_dist_block, col_dist_block, local_rows, local_cols, reuse_arrays)

    Creates new distribution

    Arguments

    Type IntentOptional Attributes Name
    type(dbcsr_distribution_obj), intent(out) :: dist

    distribution

    type(dbcsr_mp_obj), intent(in) :: mp_env

    multiprocessing environment

    integer, intent(in), DIMENSION(:), POINTER, CONTIGUOUS :: row_dist_block
    integer, intent(in), DIMENSION(:), POINTER, CONTIGUOUS :: col_dist_block
    integer, intent(in), optional, DIMENSION(:), POINTER, CONTIGUOUS :: local_rows
    integer, intent(in), optional, DIMENSION(:), POINTER, CONTIGUOUS :: local_cols
    logical, optional :: reuse_arrays

Functions

public function dbcsr_distribution_mp(dist) result(mp_env)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value type(dbcsr_mp_obj)

public pure function dbcsr_distribution_nrows(dist) result(nrows)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer

public pure function dbcsr_distribution_ncols(dist) result(ncols)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer

public function dbcsr_distribution_row_dist(dist) result(row_dist)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer, DIMENSION(:), POINTER, CONTIGUOUS

public function dbcsr_distribution_col_dist(dist) result(col_dist)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer, DIMENSION(:), POINTER, CONTIGUOUS

public function dbcsr_distribution_max_row_dist(dist) result(max_row_dist)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer

public function dbcsr_distribution_max_col_dist(dist) result(max_col_dist)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer

public pure function dbcsr_distribution_nlocal_rows(dist) result(nlocalrows)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer

public pure function dbcsr_distribution_nlocal_cols(dist) result(nlocalcols)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer

public function dbcsr_distribution_local_rows(dist) result(local_rows)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer, DIMENSION(:), POINTER, CONTIGUOUS

public function dbcsr_distribution_local_rows_obj(dist) result(local_rows)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value type(array_i1d_obj)

public function dbcsr_distribution_local_cols(dist) result(local_cols)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer, DIMENSION(:), POINTER, CONTIGUOUS

public function dbcsr_distribution_local_cols_obj(dist) result(local_cols)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value type(array_i1d_obj)

public pure function dbcsr_distribution_processor(dist, row, col) result(processor)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist
integer, intent(in) :: row
integer, intent(in) :: col

Return Value integer

public function dbcsr_distribution_thread_dist(dist) result(thread_dist)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value type(array_i1d_obj)

public pure function dbcsr_distribution_has_threads(dist) result(has_thread_dist)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value logical

public pure function dbcsr_distribution_num_threads(dist) result(num_threads)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist

Return Value integer

public function dbcsr_distribution_get_num_images_1d(matrix_dense_size_1d, nblocks, nprows, npcols) result(num_images_1d)

Count number of images in the product matrix

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: matrix_dense_size_1d

1D size of the (equivalent) dense matrix Number of row processors Number of column processors

integer, intent(in) :: nblocks

1D size of the (equivalent) dense matrix Number of row processors Number of column processors

integer, intent(in) :: nprows

1D size of the (equivalent) dense matrix Number of row processors Number of column processors

integer, intent(in) :: npcols

1D size of the (equivalent) dense matrix Number of row processors Number of column processors

Return Value integer

Number of images


Subroutines

private subroutine dbcsr_distribution_new_template(dist, template, group, pgrid, row_dist, col_dist, reuse_arrays)

Creates new distribution from a template distribution

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(out) :: dist

distribution

type(dbcsr_distribution_obj), intent(in), optional :: template
type(mp_comm_type), intent(in), optional :: group
integer, optional, DIMENSION(:, :), POINTER :: pgrid
integer, intent(in), DIMENSION(:), POINTER, CONTIGUOUS :: row_dist
integer, intent(in), DIMENSION(:), POINTER, CONTIGUOUS :: col_dist
logical, intent(in), optional :: reuse_arrays

private subroutine dbcsr_distribution_new_obj(dist, mp_env, row_dist_block, col_dist_block, local_rows, local_cols)

Creates new distribution Workaround for CCE compilation

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(out) :: dist

distribution

type(dbcsr_mp_obj), intent(in) :: mp_env

multiprocessing environment

type(array_i1d_obj), intent(in) :: row_dist_block
type(array_i1d_obj), intent(in) :: col_dist_block
type(array_i1d_obj), intent(in), optional :: local_rows
type(array_i1d_obj), intent(in), optional :: local_cols

private subroutine dbcsr_distribution_new_low(dist, mp_env, row_dist_block, col_dist_block, local_rows, local_cols, reuse_arrays)

Creates new distribution

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(out) :: dist

distribution

type(dbcsr_mp_obj), intent(in) :: mp_env

multiprocessing environment

integer, intent(in), DIMENSION(:), POINTER, CONTIGUOUS :: row_dist_block
integer, intent(in), DIMENSION(:), POINTER, CONTIGUOUS :: col_dist_block
integer, intent(in), optional, DIMENSION(:), POINTER, CONTIGUOUS :: local_rows
integer, intent(in), optional, DIMENSION(:), POINTER, CONTIGUOUS :: local_cols
logical, optional :: reuse_arrays

public subroutine dbcsr_distribution_get(dist, row_dist, col_dist, nrows, ncols, has_threads, group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, subgroups_defined, prow_group, pcol_group)

Get distribution parameters

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(in) :: dist
integer, optional, DIMENSION(:), POINTER :: row_dist
integer, optional, DIMENSION(:), POINTER :: col_dist
integer, intent(out), optional :: nrows
integer, intent(out), optional :: ncols
logical, intent(out), optional :: has_threads
type(mp_comm_type), intent(out), optional :: group
integer, intent(out), optional :: mynode
integer, intent(out), optional :: numnodes
integer, intent(out), optional :: nprows
integer, intent(out), optional :: npcols
integer, intent(out), optional :: myprow
integer, intent(out), optional :: mypcol
integer, optional, DIMENSION(:, :), POINTER :: pgrid
logical, intent(out), optional :: subgroups_defined
type(mp_comm_type), intent(out), optional :: prow_group
type(mp_comm_type), intent(out), optional :: pcol_group

public subroutine dbcsr_distribution_hold(dist)

Marks another use of the distribution

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(inout) :: dist

public subroutine dbcsr_distribution_make_threads(dist, row_sizes)

Creates a distribution for threads

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(inout), TARGET :: dist

Add thread distribution to this distribution

integer, intent(in), optional, DIMENSION(:), CONTIGUOUS :: row_sizes

row block sizes

private subroutine make_threads(dist, row_sizes)

Creates a distribution for threads

Read more…

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), POINTER :: dist

Add thread distribution to this distribution

integer, intent(in), optional, DIMENSION(:) :: row_sizes

row block sizes

public subroutine dbcsr_distribution_no_threads(dist)

Removes the thread distribution from a distribution

Arguments

Type IntentOptional Attributes Name
type(dbcsr_distribution_obj), intent(inout) :: dist