dbcsr_tas_test Module

testing infrastructure for tall-and-skinny matrices



Variables

Type Visibility Attributes Name Initial
integer, private, SAVE :: randmat_counter = 0
integer, private, parameter :: rand_seed_init = 12341313

Functions

public function dbcsr_tas_checksum(matrix, local, pos)

Calculate checksum of tall-and-skinny matrix consistent with dbcsr_checksum

Arguments

Type IntentOptional Attributes Name
type(dbcsr_tas_type), intent(in) :: matrix
logical, intent(in), optional :: local
logical, intent(in), optional :: pos

Return Value real(kind=real_8)


Subroutines

public subroutine dbcsr_tas_setup_test_matrix(matrix, mp_comm_out, mp_comm, nrows, ncols, rbsizes, cbsizes, dist_splitsize, name, sparsity, reuse_comm)

Setup tall-and-skinny matrix for testing

Arguments

Type IntentOptional Attributes Name
type(dbcsr_tas_type), intent(out) :: matrix
type(mp_comm_type), intent(out) :: mp_comm_out
type(mp_comm_type), intent(in) :: mp_comm
integer(kind=int_8), intent(in) :: nrows
integer(kind=int_8), intent(in) :: ncols
integer, intent(in), DIMENSION(nrows) :: rbsizes
integer, intent(in), DIMENSION(ncols) :: cbsizes
integer, intent(in), DIMENSION(2) :: dist_splitsize
character(len=*), intent(in) :: name
real(kind=real_8), intent(in) :: sparsity
logical, intent(in), optional :: reuse_comm

public subroutine dbcsr_tas_benchmark_mm(transa, transb, transc, matrix_a, matrix_b, matrix_c, compare_dbcsr, filter_eps, io_unit)

Benchmark routine. Due to random sparsity (as opposed to structured sparsity pattern), this may not be representative for actual applications.

Arguments

Type IntentOptional Attributes Name
character(len=1), intent(in) :: transa
character(len=1), intent(in) :: transb
character(len=1), intent(in) :: transc
type(dbcsr_tas_type), intent(inout) :: matrix_a
type(dbcsr_tas_type), intent(inout) :: matrix_b
type(dbcsr_tas_type), intent(inout) :: matrix_c
logical, intent(in) :: compare_dbcsr
real(kind=real_8), intent(in), optional :: filter_eps
integer, intent(in), optional :: io_unit

public subroutine dbcsr_tas_test_mm(transa, transb, transc, matrix_a, matrix_b, matrix_c, filter_eps, unit_nr, log_verbose)

Test tall-and-skinny matrix multiplication for accuracy

Arguments

Type IntentOptional Attributes Name
character(len=1), intent(in) :: transa
character(len=1), intent(in) :: transb
character(len=1), intent(in) :: transc
type(dbcsr_tas_type), intent(inout) :: matrix_a
type(dbcsr_tas_type), intent(inout) :: matrix_b
type(dbcsr_tas_type), intent(inout) :: matrix_c
real(kind=real_8), intent(in), optional :: filter_eps
integer, intent(in) :: unit_nr
logical, intent(in), optional :: log_verbose

public subroutine dbcsr_tas_random_bsizes(sizes, repeat, block_sizes)

Create random block sizes

Arguments

Type IntentOptional Attributes Name
integer, intent(in), DIMENSION(:) :: sizes
integer, intent(in) :: repeat
integer, intent(out), DIMENSION(:) :: block_sizes

public subroutine dbcsr_tas_reset_randmat_seed()

Reset the seed used for generating random matrices to default value

Arguments

None