Documentation for module dbcsr_mm_cannon

First layer of the dbcsr matrix-matrix multiplication. It performs the MPI parallelization according to Cannon's algorithm.

source: dbcsr_mm_cannon.F
Loading...

public Subroutines/Functions:

Make images from the matrix (left or right)
Multiplies two DBCSR matrices

SUBROUTINEmake_m2s(matrix, m2s, rdist, dense_rdist, use_dense_mult, ab_dense, predistribute, f_k, l_k, f_row, l_row, f_col, l_col, row_blk_size, col_blk_size, k_vmap, m_map, n_map, alpha)

Make images from the matrix (left or right)

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix ...
INTENT(out),
POINTER
:: m2s ...
INTENT(inout)
:: rdist ...
INTENT(inout)
:: dense_rdist ...
LOGICAL,
INTENT(in)
:: use_dense_mult ...
LOGICAL,
INTENT(in)
:: ab_dense ...
CHARACTER,
INTENT(in)
:: predistribute ...
INTEGER,
INTENT(in)
:: f_k ...
INTEGER,
INTENT(in)
:: l_k ...
INTEGER,
INTENT(in)
:: f_row ...
INTEGER,
INTENT(in)
:: l_row ...
INTEGER,
INTENT(in)
:: f_col ...
INTEGER,
INTENT(in)
:: l_col ...
INTENT(inout)
:: row_blk_size ...
INTENT(inout)
:: col_blk_size ...
INTENT(in)
:: k_vmap ...
INTENT(in)
:: m_map ...
INTENT(in)
:: n_map ...
INTENT(in),
OPTIONAL
:: alpha ...

SUBROUTINEmultiply_cannon(left_set, right_set, product_matrix, retain_sparsity, filter_eps, flop)

Multiplies two DBCSR matrices

Arguments:
POINTER
:: left_set set of imaged left matrices
POINTER
:: right_set set of imaged right matrices
TYPE(dbcsr_type),
INTENT(inout)
:: product_matrix DBCSR product matrix
LOGICAL,
INTENT(in),
OPTIONAL
:: retain_sparsity retain the sparsity of the existing product matrix; default is no
REAL(real_8),
INTENT(in),
OPTIONAL
:: filter_eps ...
INTEGER(int_8),
INTENT(out)
:: flop effective flop