![]() |
(git:b77b4be)
|
Global data (distribution and block sizes) for tall-and-skinny matrices For very sparse matrices with one very large dimension, storing array data of the same size as the matrix dimensions may require too much memory and we need to compute them on the fly for a given row or column. Hence global array data such as distribution and block sizes are specified as function objects, leaving up to the caller how to efficiently store global data. More...
Data Types | |
interface | dbt_tas_blk_size_arb |
type for arbitrary block sizes More... | |
interface | dbt_tas_blk_size_one |
type for blocks of size one More... | |
interface | dbt_tas_blk_size_repl |
type for replicated block sizes More... | |
interface | dbt_tas_dist_arb |
type for arbitrary distributions More... | |
interface | dbt_tas_dist_cyclic |
type for cyclic (round robin) distribution: More... | |
interface | dbt_tas_dist_repl |
type for replicated distribution More... | |
type | dbt_tas_distribution |
type | dbt_tas_rowcol_data |
interface | rowcol_dist |
map matrix rows/cols to distribution rows/cols More... | |
Functions/Subroutines | |
type(dbt_tas_dist_arb) function, public | dbt_tas_dist_arb_default (nprowcol, nmrowcol, dbt_sizes) |
Distribution that is more or less cyclic (round robin) and load balanced with different weights for each element. This is used for creating adhoc distributions whenever matrices are mapped to new grids. Only for small dimensions since distribution is created as an array. | |
subroutine, public | dbt_tas_default_distvec (nblk, nproc, blk_size, dist) |
get a load-balanced and randomized distribution along one tensor dimension | |
Global data (distribution and block sizes) for tall-and-skinny matrices For very sparse matrices with one very large dimension, storing array data of the same size as the matrix dimensions may require too much memory and we need to compute them on the fly for a given row or column. Hence global array data such as distribution and block sizes are specified as function objects, leaving up to the caller how to efficiently store global data.
type(dbt_tas_dist_arb) function, public dbt_tas_global::dbt_tas_dist_arb_default | ( | integer | nprowcol, |
integer(kind=int_8), intent(in) | nmrowcol, | ||
class(dbt_tas_rowcol_data), intent(in) | dbt_sizes | ||
) |
Distribution that is more or less cyclic (round robin) and load balanced with different weights for each element. This is used for creating adhoc distributions whenever matrices are mapped to new grids. Only for small dimensions since distribution is created as an array.
nprowcol | ... |
nmrowcol | ... |
dbt_sizes | ... |
Definition at line 458 of file dbt_tas_global.F.
subroutine, public dbt_tas_global::dbt_tas_default_distvec | ( | integer, intent(in) | nblk, |
integer, intent(in) | nproc, | ||
integer, dimension(nblk), intent(in) | blk_size, | ||
integer, dimension(nblk), intent(out) | dist | ||
) |
get a load-balanced and randomized distribution along one tensor dimension
nblk | number of blocks (along one tensor dimension) |
nproc | number of processes (along one process grid dimension) |
blk_size | block sizes |
dist | distribution |
Definition at line 484 of file dbt_tas_global.F.