![]() |
(git:b77b4be)
|
Tall-and-skinny matrices: base routines similar to DBM API, mostly wrappers around existing DBM routines. More...
Data Types | |
interface | dbt_tas_create |
interface | dbt_tas_iterator_next_block |
interface | dbt_tas_reserve_blocks |
Functions/Subroutines | |
subroutine, public | dbt_tas_destroy (matrix) |
... | |
subroutine, public | dbt_tas_copy (matrix_b, matrix_a, summation) |
Copy matrix_a to matrix_b. | |
subroutine, public | dbt_tas_finalize (matrix) |
... | |
subroutine, public | dbt_tas_distribution_new (dist, mp_comm, row_dist, col_dist, split_info, nosplit) |
create new distribution. Exactly like dbm_distribution_new but with custom types for row_dist and col_dist instead of arrays. | |
subroutine, public | dbt_tas_distribution_destroy (dist) |
... | |
subroutine, public | dbt_tas_get_stored_coordinates (matrix, row, column, processor) |
As dbt_get_stored_coordinates. | |
subroutine, public | dbt_repl_get_stored_coordinates (matrix, row, column, processors) |
Get all processors for a given row/col combination if matrix is replicated on each process subgroup. | |
subroutine, public | dbt_tas_convert_to_dbm (matrix_rect, matrix_dbm) |
Convert a tall-and-skinny matrix into a normal DBM matrix. This is not recommended for matrices with a very large dimension. | |
subroutine, public | dbt_tas_convert_to_tas (info, matrix_rect, matrix_dbm) |
Converts a DBM matrix into the tall-and-skinny matrix type. | |
subroutine, public | dbt_tas_iterator_start (iter, matrix_in) |
As dbm_iterator_start. | |
integer function, public | dbt_tas_iterator_num_blocks (iter) |
As dbm_iterator_num_blocks. | |
logical function, public | dbt_tas_iterator_blocks_left (iter) |
As dbm_iterator_blocks_left. | |
subroutine, public | dbt_tas_iterator_stop (iter) |
As dbm_iterator_stop. | |
subroutine, public | dbt_tas_blk_sizes (matrix, row, col, row_size, col_size) |
Get block size for a given row & column. | |
type(dbt_tas_split_info) function, pointer, public | dbt_tas_info (matrix) |
get info on mpi grid splitting | |
pure integer(kind=int_8) function, public | dbt_tas_nblkrows_total (matrix) |
... | |
pure integer(kind=int_8) function, public | dbt_tas_nfullrows_total (matrix) |
... | |
pure integer(kind=int_8) function, public | dbt_tas_nblkcols_total (matrix) |
... | |
pure integer(kind=int_8) function, public | dbt_tas_nfullcols_total (matrix) |
... | |
integer function, public | dbt_tas_nblkcols_local (matrix) |
... | |
integer function, public | dbt_tas_nblkrows_local (matrix) |
... | |
pure integer function, public | dbt_tas_get_num_blocks (matrix) |
As dbt_get_num_blocks: get number of local blocks. | |
integer(kind=int_8) function, public | dbt_tas_get_num_blocks_total (matrix) |
get total number of blocks | |
pure integer function, public | dbt_tas_get_nze (matrix) |
As dbt_get_nze: get number of local non-zero elements. | |
integer(kind=int_8) function, public | dbt_tas_get_nze_total (matrix) |
Get total number of non-zero elements. | |
subroutine, public | dbt_tas_clear (matrix) |
Clear matrix (erase all data) | |
subroutine, public | dbt_tas_get_info (matrix, nblkrows_total, nblkcols_total, local_rows, local_cols, proc_row_dist, proc_col_dist, row_blk_size, col_blk_size, distribution, name) |
... | |
subroutine, public | dbt_tas_put_block (matrix, row, col, block, summation) |
As dbm_put_block. | |
subroutine, public | dbt_tas_get_block_p (matrix, row, col, block, row_size, col_size) |
As dbm_get_block_p. | |
subroutine, public | dbt_tas_filter (matrix, eps) |
As dbm_filter. | |
Tall-and-skinny matrices: base routines similar to DBM API, mostly wrappers around existing DBM routines.
subroutine, public dbt_tas_base::dbt_tas_destroy | ( | type(dbt_tas_type), intent(inout) | matrix | ) |
...
matrix | ... |
Definition at line 232 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_copy | ( | type(dbt_tas_type), intent(inout) | matrix_b, |
type(dbt_tas_type), intent(in) | matrix_a, | ||
logical, intent(in), optional | summation | ||
) |
Copy matrix_a to matrix_b.
matrix_b | ... |
matrix_a | ... |
summation | Whether to sum matrices b = a + b |
Definition at line 249 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_finalize | ( | type(dbt_tas_type), intent(inout) | matrix | ) |
...
matrix | ... |
Definition at line 326 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_distribution_new | ( | type(dbt_tas_distribution_type), intent(out) | dist, |
type(mp_cart_type), intent(in) | mp_comm, | ||
class(dbt_tas_distribution), intent(in) | row_dist, | ||
class(dbt_tas_distribution), intent(in) | col_dist, | ||
type(dbt_tas_split_info), intent(in), optional | split_info, | ||
logical, intent(in), optional | nosplit | ||
) |
create new distribution. Exactly like dbm_distribution_new but with custom types for row_dist and col_dist instead of arrays.
dist | ... |
mp_comm | ... |
row_dist | ... |
col_dist | ... |
split_info | Strategy of how to split process grid (optional). If not present a default split heuristic is applied. |
nosplit | if .TRUE. don't split process grid (optional) |
Definition at line 345 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_distribution_destroy | ( | type(dbt_tas_distribution_type), intent(inout) | dist | ) |
...
dist | ... |
Definition at line 432 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_get_stored_coordinates | ( | type(dbt_tas_type), intent(in) | matrix, |
integer(kind=int_8), intent(in) | row, | ||
integer(kind=int_8), intent(in) | column, | ||
integer, intent(out) | processor | ||
) |
As dbt_get_stored_coordinates.
matrix | ... |
row | global matrix blocked row |
column | global matrix blocked column |
processor | process ID |
Definition at line 461 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_repl_get_stored_coordinates | ( | type(dbt_tas_type), intent(in) | matrix, |
integer, intent(in) | row, | ||
integer, intent(in) | column, | ||
integer, dimension(:), intent(out) | processors | ||
) |
Get all processors for a given row/col combination if matrix is replicated on each process subgroup.
matrix | tall-and-skinny matrix whose DBM submatrices are replicated matrices |
row | row of a submatrix |
column | column of a submatrix |
processors | ... |
Definition at line 487 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_convert_to_dbm | ( | type(dbt_tas_type), intent(in) | matrix_rect, |
type(dbm_type), intent(out) | matrix_dbm | ||
) |
Convert a tall-and-skinny matrix into a normal DBM matrix. This is not recommended for matrices with a very large dimension.
matrix_rect | ... |
matrix_dbm | ... |
Definition at line 523 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_convert_to_tas | ( | type(dbt_tas_split_info), intent(in) | info, |
type(dbt_tas_type), intent(out) | matrix_rect, | ||
type(dbm_type), intent(in) | matrix_dbm | ||
) |
Converts a DBM matrix into the tall-and-skinny matrix type.
info | Strategy of how to split process grid |
matrix_rect | ... |
matrix_dbm | ... |
Definition at line 607 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_iterator_start | ( | type(dbt_tas_iterator), intent(inout) | iter, |
type(dbt_tas_type), intent(in), target | matrix_in | ||
) |
As dbm_iterator_start.
iter | ... |
matrix_in | ... |
Definition at line 669 of file dbt_tas_base.F.
integer function, public dbt_tas_base::dbt_tas_iterator_num_blocks | ( | type(dbt_tas_iterator), intent(in) | iter | ) |
As dbm_iterator_num_blocks.
iter | ... |
Definition at line 684 of file dbt_tas_base.F.
logical function, public dbt_tas_base::dbt_tas_iterator_blocks_left | ( | type(dbt_tas_iterator), intent(in) | iter | ) |
As dbm_iterator_blocks_left.
iter | ... |
Definition at line 697 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_iterator_stop | ( | type(dbt_tas_iterator), intent(inout) | iter | ) |
As dbm_iterator_stop.
iter | ... |
Definition at line 709 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_blk_sizes | ( | type(dbt_tas_type), intent(in) | matrix, |
integer(kind=int_8), intent(in) | row, | ||
integer(kind=int_8), intent(in) | col, | ||
integer, intent(out) | row_size, | ||
integer, intent(out) | col_size | ||
) |
Get block size for a given row & column.
matrix | ... |
row | ... |
col | ... |
row_size | ... |
col_size | ... |
Definition at line 809 of file dbt_tas_base.F.
type(dbt_tas_split_info) function, pointer, public dbt_tas_base::dbt_tas_info | ( | type(dbt_tas_type), intent(in), target | matrix | ) |
get info on mpi grid splitting
matrix | ... |
Definition at line 824 of file dbt_tas_base.F.
pure integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nblkrows_total | ( | type(dbt_tas_type), intent(in) | matrix | ) |
...
matrix | ... |
Definition at line 837 of file dbt_tas_base.F.
pure integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nfullrows_total | ( | type(dbt_tas_type), intent(in) | matrix | ) |
pure integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nblkcols_total | ( | type(dbt_tas_type), intent(in) | matrix | ) |
...
matrix | ... |
Definition at line 863 of file dbt_tas_base.F.
pure integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nfullcols_total | ( | type(dbt_tas_type), intent(in) | matrix | ) |
integer function, public dbt_tas_base::dbt_tas_nblkcols_local | ( | type(dbt_tas_type), intent(in) | matrix | ) |
...
matrix | ... |
Definition at line 889 of file dbt_tas_base.F.
integer function, public dbt_tas_base::dbt_tas_nblkrows_local | ( | type(dbt_tas_type), intent(in) | matrix | ) |
...
matrix | ... |
Definition at line 902 of file dbt_tas_base.F.
pure integer function, public dbt_tas_base::dbt_tas_get_num_blocks | ( | type(dbt_tas_type), intent(in) | matrix | ) |
As dbt_get_num_blocks: get number of local blocks.
matrix | ... |
Definition at line 915 of file dbt_tas_base.F.
integer(kind=int_8) function, public dbt_tas_base::dbt_tas_get_num_blocks_total | ( | type(dbt_tas_type), intent(in) | matrix | ) |
get total number of blocks
matrix | ... |
Definition at line 928 of file dbt_tas_base.F.
pure integer function, public dbt_tas_base::dbt_tas_get_nze | ( | type(dbt_tas_type), intent(in) | matrix | ) |
As dbt_get_nze: get number of local non-zero elements.
matrix | ... |
Definition at line 946 of file dbt_tas_base.F.
integer(kind=int_8) function, public dbt_tas_base::dbt_tas_get_nze_total | ( | type(dbt_tas_type), intent(in) | matrix | ) |
Get total number of non-zero elements.
matrix | ... |
Definition at line 960 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_clear | ( | type(dbt_tas_type), intent(inout) | matrix | ) |
Clear matrix (erase all data)
matrix | ... |
Definition at line 976 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_get_info | ( | type(dbt_tas_type), intent(in) | matrix, |
integer(kind=int_8), intent(out), optional | nblkrows_total, | ||
integer(kind=int_8), intent(out), optional | nblkcols_total, | ||
integer(kind=int_8), dimension(:), optional, allocatable | local_rows, | ||
integer(kind=int_8), dimension(:), optional, allocatable | local_cols, | ||
class(dbt_tas_distribution), intent(out), optional, allocatable | proc_row_dist, | ||
class(dbt_tas_distribution), intent(out), optional, allocatable | proc_col_dist, | ||
class(dbt_tas_rowcol_data), intent(out), optional, allocatable | row_blk_size, | ||
class(dbt_tas_rowcol_data), intent(out), optional, allocatable | col_blk_size, | ||
type(dbt_tas_distribution_type), optional | distribution, | ||
character(len=*), intent(out), optional | name | ||
) |
...
matrix | ... |
nblkrows_total | ... |
nblkcols_total | ... |
local_rows | ... |
local_cols | ... |
proc_row_dist | ... |
proc_col_dist | ... |
row_blk_size | ... |
col_blk_size | ... |
distribution | ... |
name | ... |
Definition at line 997 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_put_block | ( | type(dbt_tas_type), intent(inout) | matrix, |
integer(kind=int_8), intent(in) | row, | ||
integer(kind=int_8), intent(in) | col, | ||
real(dp), dimension(:, :), intent(in) | block, | ||
logical, intent(in), optional | summation | ||
) |
As dbm_put_block.
matrix | ... |
row | ... |
col | ... |
block | ... |
summation | ... |
Definition at line 1083 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_get_block_p | ( | type(dbt_tas_type), intent(inout) | matrix, |
integer(kind=int_8), intent(in) | row, | ||
integer(kind=int_8), intent(in) | col, | ||
real(dp), dimension(:, :), pointer | block, | ||
integer, intent(out), optional | row_size, | ||
integer, intent(out), optional | col_size | ||
) |
As dbm_get_block_p.
matrix | ... |
row | ... |
col | ... |
block | ... |
row_size | ... |
col_size | ... |
Definition at line 1108 of file dbt_tas_base.F.
subroutine, public dbt_tas_base::dbt_tas_filter | ( | type(dbt_tas_type), intent(inout) | matrix, |
real(dp), intent(in) | eps | ||
) |
As dbm_filter.
matrix | ... |
eps | ... |
Definition at line 1130 of file dbt_tas_base.F.