|
| 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: