testing infrastructure for tall-and-skinny matrices
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private, | SAVE | :: | randmat_counter | = | 0 | |
integer, | private, | parameter | :: | rand_seed_init | = | 12341313 |
Calculate checksum of tall-and-skinny matrix consistent with dbcsr_checksum
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_tas_type), | intent(in) | :: | matrix | |||
logical, | intent(in), | optional | :: | local | ||
logical, | intent(in), | optional | :: | pos |
Setup tall-and-skinny matrix for testing
Type | Intent | Optional | 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 |
Benchmark routine. Due to random sparsity (as opposed to structured sparsity pattern), this may not be representative for actual applications.
Type | Intent | Optional | 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 |
Test tall-and-skinny matrix multiplication for accuracy
Type | Intent | Optional | 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 |
Create random block sizes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(:) | :: | sizes | ||
integer, | intent(in) | :: | repeat | |||
integer, | intent(out), | DIMENSION(:) | :: | block_sizes |
Reset the seed used for generating random matrices to default value