|
procedure | init (this, matrix_p) |
| initialize submatrix dissection and communicate, needs to be called before constructing any submatrices.
|
|
procedure | final (this) |
| free all associated memory, afterwards submatrix_dissection_init needs to be called again
|
|
procedure | get_sm_ids_for_rank (this, rank, sm_ids) |
| determine submatrix ids that are handled by a specific rank
|
|
procedure | generate_submatrix (this, sm_id, sm) |
| generate a specific submatrix
|
|
procedure | copy_resultcol (this, sm_id, sm) |
| copy result columns from a submatrix into result buffer
|
|
procedure | communicate_results (this, resultmat) |
| finalize results back into a dbcsr matrix
|
|
procedure | get_relevant_sm_columns (this, sm_id, first, last) |
| determine which columns of the submatrix are relevant for the result matrix
|
|
|
type(dbcsr_type) | dbcsr_mat |
|
type(dbcsr_distribution_type) | dist |
|
logical | initialized = .FALSE. |
|
type(mp_comm_type) | group = mp_comm_type() |
|
integer | numnodes = -1 |
|
integer | myrank = -1 |
|
integer | nblkcols = -1 |
|
integer | nblkrows = -1 |
|
integer | nblks = -1 |
|
integer | local_blocks = -1 |
|
integer | cols_per_sm = -1 |
|
integer | number_of_submatrices = -1 |
|
integer, dimension(:), pointer | row_blk_size => NULL() |
|
integer, dimension(:), pointer | col_blk_size => NULL() |
|
integer, dimension(:), allocatable | coo_cols |
|
integer, dimension(:), allocatable | coo_rows |
|
integer, dimension(:), allocatable | coo_col_offsets |
|
integer, dimension(:), allocatable | coo_cols_local |
|
integer, dimension(:), allocatable | coo_rows_local |
|
integer, dimension(:), allocatable | coo_col_offsets_local |
|
integer, dimension(:), allocatable | submatrix_owners |
|
integer, dimension(:), allocatable | submatrix_sizes |
|
type(buffer_type), dimension(:), allocatable | recvbufs |
|
type(buffer_type), dimension(:), allocatable | result_sendbufs |
|
type(set_type), dimension(:), allocatable | result_blocks_for_rank |
|
type(set_type), dimension(:), allocatable | result_blocks_from_rank |
|
type(bufptr_type), dimension(:), allocatable | coo_dptr |
|
type(intbuffer_type), dimension(:), allocatable | result_blocks_for_rank_buf_offsets |
|
Definition at line 66 of file submatrix_dissection.F.
◆ init()
initialize submatrix dissection and communicate, needs to be called before constructing any submatrices.
- Parameters
-
- History
- 2020.02 created [Michael Lass] 2020.05 add time measurements [Michael Lass]
Definition at line 82 of file submatrix_dissection.F.
◆ final()
free all associated memory, afterwards submatrix_dissection_init needs to be called again
- Parameters
-
Definition at line 83 of file submatrix_dissection.F.
◆ get_sm_ids_for_rank()
procedure submatrix_dissection::submatrix_dissection_type::get_sm_ids_for_rank |
( |
class(submatrix_dissection_type), intent(in) |
this, |
|
|
integer, intent(in) |
rank, |
|
|
integer, dimension(:), intent(out), allocatable |
sm_ids |
|
) |
| |
determine submatrix ids that are handled by a specific rank
- Parameters
-
Definition at line 84 of file submatrix_dissection.F.
◆ generate_submatrix()
procedure submatrix_dissection::submatrix_dissection_type::generate_submatrix |
( |
class(submatrix_dissection_type), intent(in) |
this, |
|
|
integer, intent(in) |
sm_id, |
|
|
real(kind=dp), dimension(:, :), intent(out), allocatable |
sm |
|
) |
| |
◆ copy_resultcol()
procedure submatrix_dissection::submatrix_dissection_type::copy_resultcol |
( |
class(submatrix_dissection_type), intent(inout) |
this, |
|
|
integer, intent(in) |
sm_id, |
|
|
real(kind=dp), dimension(:, :), intent(in), allocatable |
sm |
|
) |
| |
copy result columns from a submatrix into result buffer
- Parameters
-
Definition at line 86 of file submatrix_dissection.F.
◆ communicate_results()
procedure submatrix_dissection::submatrix_dissection_type::communicate_results |
( |
class(submatrix_dissection_type), intent(inout) |
this, |
|
|
type(dbcsr_type), intent(inout) |
resultmat |
|
) |
| |
finalize results back into a dbcsr matrix
- Parameters
-
- History
- 2020.02 created [Michael Lass] 2020.05 add time measurements [Michael Lass]
Definition at line 87 of file submatrix_dissection.F.
◆ get_relevant_sm_columns()
procedure submatrix_dissection::submatrix_dissection_type::get_relevant_sm_columns |
( |
class(submatrix_dissection_type), intent(in) |
this, |
|
|
integer, intent(in) |
sm_id, |
|
|
integer, intent(out) |
first, |
|
|
integer, intent(out) |
last |
|
) |
| |
determine which columns of the submatrix are relevant for the result matrix
- Parameters
-
this | - object of class submatrix_dissection_type |
sm_id | - id of the submatrix |
first | - first column of submatrix that is relevant |
last | - last column of submatrix that is relevant |
Definition at line 88 of file submatrix_dissection.F.
◆ dbcsr_mat
type(dbcsr_type) submatrix_dissection::submatrix_dissection_type::dbcsr_mat |
◆ dist
◆ initialized
logical submatrix_dissection::submatrix_dissection_type::initialized = .FALSE. |
◆ group
◆ numnodes
integer submatrix_dissection::submatrix_dissection_type::numnodes = -1 |
◆ myrank
integer submatrix_dissection::submatrix_dissection_type::myrank = -1 |
◆ nblkcols
integer submatrix_dissection::submatrix_dissection_type::nblkcols = -1 |
◆ nblkrows
integer submatrix_dissection::submatrix_dissection_type::nblkrows = -1 |
◆ nblks
integer submatrix_dissection::submatrix_dissection_type::nblks = -1 |
◆ local_blocks
integer submatrix_dissection::submatrix_dissection_type::local_blocks = -1 |
◆ cols_per_sm
integer submatrix_dissection::submatrix_dissection_type::cols_per_sm = -1 |
◆ number_of_submatrices
integer submatrix_dissection::submatrix_dissection_type::number_of_submatrices = -1 |
◆ row_blk_size
integer, dimension(:), pointer submatrix_dissection::submatrix_dissection_type::row_blk_size => NULL() |
◆ col_blk_size
integer, dimension(:), pointer submatrix_dissection::submatrix_dissection_type::col_blk_size => NULL() |
◆ coo_cols
integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_cols |
◆ coo_rows
integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_rows |
◆ coo_col_offsets
integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_col_offsets |
◆ coo_cols_local
integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_cols_local |
◆ coo_rows_local
integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_rows_local |
◆ coo_col_offsets_local
integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_col_offsets_local |
◆ submatrix_owners
integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::submatrix_owners |
◆ submatrix_sizes
integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::submatrix_sizes |
◆ recvbufs
type(buffer_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::recvbufs |
◆ result_sendbufs
type(buffer_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::result_sendbufs |
◆ result_blocks_for_rank
type(set_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::result_blocks_for_rank |
◆ result_blocks_from_rank
type(set_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::result_blocks_from_rank |
◆ coo_dptr
type(bufptr_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_dptr |
◆ result_blocks_for_rank_buf_offsets
type(intbuffer_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::result_blocks_for_rank_buf_offsets |
The documentation for this type was generated from the following file: