(git:c5411e0)
Loading...
Searching...
No Matches
submatrix_dissection::submatrix_dissection_type Type Reference

Public Member Functions

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
 

Data Fields

type(dbcsr_type) dbcsr_mat
 
type(dbcsr_distribution_type) dist
 
logical initialized = .FALSE.
 
type(mp_comm_typegroup
 
integer numnodes
 
integer myrank
 
integer nblkcols
 
integer nblkrows
 
integer nblks
 
integer local_blocks
 
integer cols_per_sm
 
integer number_of_submatrices
 
integer, dimension(:), pointer row_blk_size
 
integer, dimension(:), pointer col_blk_size
 
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
 

Detailed Description

Definition at line 66 of file submatrix_dissection.F.

Member Function/Subroutine Documentation

◆ init()

procedure submatrix_dissection::submatrix_dissection_type::init ( class(submatrix_dissection_type), intent(inout)  this,
type(dbcsr_type), intent(in)  matrix_p 
)

initialize submatrix dissection and communicate, needs to be called before constructing any submatrices.

Parameters
this- object of class submatrix_dissection_type
matrix_p- dbcsr input matrix
History
2020.02 created [Michael Lass] 2020.05 add time measurements [Michael Lass]

Definition at line 81 of file submatrix_dissection.F.

◆ final()

procedure submatrix_dissection::submatrix_dissection_type::final ( class(submatrix_dissection_type), intent(inout)  this)

free all associated memory, afterwards submatrix_dissection_init needs to be called again

Parameters
this- object of class submatrix_dissection_type

Definition at line 82 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
this- object of class submatrix_dissection_type
rank- rank id of interest
sm_ids- list of submatrix ids handled by that rank

Definition at line 83 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 
)

generate a specific submatrix

Parameters
this- object of class submatrix_dissection_type
sm_id- id of the submatrix to generate
sm- generated submatrix

Definition at line 84 of file submatrix_dissection.F.

◆ 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
this- object of class submatrix_dissection_type
sm_id- id of the submatrix
sm- result-submatrix

Definition at line 85 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
this- object of class submatrix_dissection_type
resultmat- result dbcsr matrix
History
2020.02 created [Michael Lass] 2020.05 add time measurements [Michael Lass]

Definition at line 86 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 87 of file submatrix_dissection.F.

Field Documentation

◆ dbcsr_mat

type(dbcsr_type) submatrix_dissection::submatrix_dissection_type::dbcsr_mat

Definition at line 67 of file submatrix_dissection.F.

◆ dist

type(dbcsr_distribution_type) submatrix_dissection::submatrix_dissection_type::dist

Definition at line 68 of file submatrix_dissection.F.

◆ initialized

logical submatrix_dissection::submatrix_dissection_type::initialized = .FALSE.

Definition at line 69 of file submatrix_dissection.F.

◆ group

type(mp_comm_type) submatrix_dissection::submatrix_dissection_type::group

Definition at line 70 of file submatrix_dissection.F.

◆ numnodes

integer submatrix_dissection::submatrix_dissection_type::numnodes

Definition at line 71 of file submatrix_dissection.F.

◆ myrank

integer submatrix_dissection::submatrix_dissection_type::myrank

Definition at line 71 of file submatrix_dissection.F.

◆ nblkcols

integer submatrix_dissection::submatrix_dissection_type::nblkcols

Definition at line 71 of file submatrix_dissection.F.

◆ nblkrows

integer submatrix_dissection::submatrix_dissection_type::nblkrows

Definition at line 71 of file submatrix_dissection.F.

◆ nblks

integer submatrix_dissection::submatrix_dissection_type::nblks

Definition at line 71 of file submatrix_dissection.F.

◆ local_blocks

integer submatrix_dissection::submatrix_dissection_type::local_blocks

Definition at line 71 of file submatrix_dissection.F.

◆ cols_per_sm

integer submatrix_dissection::submatrix_dissection_type::cols_per_sm

Definition at line 71 of file submatrix_dissection.F.

◆ number_of_submatrices

integer submatrix_dissection::submatrix_dissection_type::number_of_submatrices

Definition at line 71 of file submatrix_dissection.F.

◆ row_blk_size

integer, dimension(:), pointer submatrix_dissection::submatrix_dissection_type::row_blk_size

Definition at line 73 of file submatrix_dissection.F.

◆ col_blk_size

integer, dimension(:), pointer submatrix_dissection::submatrix_dissection_type::col_blk_size

Definition at line 73 of file submatrix_dissection.F.

◆ coo_cols

integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_cols

Definition at line 74 of file submatrix_dissection.F.

◆ coo_rows

integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_rows

Definition at line 74 of file submatrix_dissection.F.

◆ coo_col_offsets

integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_col_offsets

Definition at line 74 of file submatrix_dissection.F.

◆ coo_cols_local

integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_cols_local

Definition at line 74 of file submatrix_dissection.F.

◆ coo_rows_local

integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_rows_local

Definition at line 74 of file submatrix_dissection.F.

◆ coo_col_offsets_local

integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_col_offsets_local

Definition at line 74 of file submatrix_dissection.F.

◆ submatrix_owners

integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::submatrix_owners

Definition at line 74 of file submatrix_dissection.F.

◆ submatrix_sizes

integer, dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::submatrix_sizes

Definition at line 74 of file submatrix_dissection.F.

◆ recvbufs

type(buffer_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::recvbufs

Definition at line 76 of file submatrix_dissection.F.

◆ result_sendbufs

type(buffer_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::result_sendbufs

Definition at line 76 of file submatrix_dissection.F.

◆ result_blocks_for_rank

type(set_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::result_blocks_for_rank

Definition at line 77 of file submatrix_dissection.F.

◆ result_blocks_from_rank

type(set_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::result_blocks_from_rank

Definition at line 77 of file submatrix_dissection.F.

◆ coo_dptr

type(bufptr_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::coo_dptr

Definition at line 78 of file submatrix_dissection.F.

◆ result_blocks_for_rank_buf_offsets

type(intbuffer_type), dimension(:), allocatable submatrix_dissection::submatrix_dissection_type::result_blocks_for_rank_buf_offsets

Definition at line 79 of file submatrix_dissection.F.


The documentation for this type was generated from the following file: