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