Documentation for module dbcsr_mm_3d

3D matrix-matrix multiplication.

source: dbcsr_mm_3d.F
Loading...

public Subroutines/Functions:

SUBROUTINE
buffers_release
Release all buffers
Prepare orig images for MPI windows
Make communicators for 3D layers for C-reduction
Multiplies two DBCSR matrices (experimental MPI algorithm). This algorithm is experimental and it should be not used in production runs.
Release communicators for 3D layers for C-reduction

Other:

INTEGER
:: request_sync_mult = mp_request_null

SUBROUTINEbuffers_release()

Release all buffers

SUBROUTINEdbcsr_make_buffers(matrix, imgdist, is_left, f_row, l_row, f_col, l_col, otf_filtering, alpha)

Prepare orig images for MPI windows

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix ...
INTENT(in)
:: imgdist ...
LOGICAL,
INTENT(in)
:: is_left ...
INTEGER,
INTENT(in)
:: f_row ...
INTEGER,
INTENT(in)
:: l_row ...
INTEGER,
INTENT(in)
:: f_col ...
INTEGER,
INTENT(in)
:: l_col ...
LOGICAL,
INTENT(in)
:: otf_filtering ...
INTENT(in),
OPTIONAL
:: alpha ...

SUBROUTINEmake_layers_3d_c_reduction(my_num_layers_3d, mp_obj)

Make communicators for 3D layers for C-reduction

Arguments:
INTEGER,
INTENT(in)
:: my_num_layers_3d ...
INTENT(inout)
:: mp_obj ...

SUBROUTINEmultiply_3d(imgdist_left, imgdist_right, matrix_left, matrix_right, product_matrix, retain_sparsity, filter_eps, flop, keep_product_data)

Multiplies two DBCSR matrices (experimental MPI algorithm). This algorithm is experimental and it should be not used in production runs.

Arguments:
INTENT(inout)
:: imgdist_left ...
INTENT(inout)
:: imgdist_right ...
TYPE(dbcsr_type),
INTENT(in)
:: matrix_left ...
TYPE(dbcsr_type),
INTENT(in)
:: matrix_right ...
TYPE(dbcsr_type),
INTENT(inout),
TARGET
:: 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
LOGICAL,
INTENT(in)
:: keep_product_data ...

SUBROUTINErelease_layers_3d_c_reduction(release_buffers)

Release communicators for 3D layers for C-reduction

Arguments:
LOGICAL,
OPTIONAL
:: release_buffers ...