MPI_DSMat_SendRecvCompactCSR
Public Functions
Name | |
---|---|
MPI_DSMat_SendRecvCompactCSR() Creates an empty object. |
|
~MPI_DSMat_SendRecvCompactCSR() Deletes the object. It must be deallocated after communication end. |
|
MPI_Request * | get_ptr_snd_size_req_data() Returns the pointer to the status of the outgoing communications of Sizes. |
MPI_Request * | get_ptr_rcv_size_req_data() Returns the pointer to the status of the ingoing communications of Sizes. |
MPI_Request * | get_ptr_snd_csr_req_data() Returns the pointer to the status of the outgoing communications of CSR. |
MPI_Request * | get_ptr_rcv_csr_req_data() Returns the pointer to the status of the ingoing communications of CSR. |
void | Prepare(const iReg nSend, const iReg nRecv) Prepares the structures of the MPI messages. |
void | Send(CommGraph &restrict Graph, CSRMAT< iReg > restrict matL, CSRMAT< iReg > restrict matC, CSRMAT< iReg > *restrict matR, const iReg restrict icom, const type_MPI_iReg restrict dest, const type_MPI_iReg restrict tag1, const type_MPI_iReg restrict tag2, VEC< iReg > &restrict List_rows) Sends asynchronously the stripe of the DSMat memorized in the process. |
void | RecvSize(const iReg restrict icom, const type_MPI_iReg restrict source, const type_MPI_iReg restrict tag1, VEC< iExt > &restrict Rcv_size) Starts to receive the sizes of CSR blocks. |
void | RecvCSR(const iReg restrict icom, const type_MPI_iReg restrict source, const type_MPI_iReg restrict tag2, const iReg restrict nrows, const iExt restrict nterm, const iReg restrict offset_address_iat, const iExt restrict offset_address_ja, CSRMAT< iReg > &restrict CompactCSR) Starts to receive CSR blocks. |
void | nullify_snd_size() Nullify send buffers for the sizes. |
void | nullify_snd_csr() Nullify send buffers for the sizes. |
void | nullify_rcv_size() Nullify receve buffers for the sizes. |
void | nullify_rcv_csr() Nullify receve buffers for the sizes. |
Public Functions Documentation
function MPI_DSMat_SendRecvCompactCSR
inline MPI_DSMat_SendRecvCompactCSR()
Creates an empty object.
function ~MPI_DSMat_SendRecvCompactCSR
~MPI_DSMat_SendRecvCompactCSR()
Deletes the object. It must be deallocated after communication end.
function get_ptr_snd_size_req_data
inline MPI_Request * get_ptr_snd_size_req_data()
Returns the pointer to the status of the outgoing communications of Sizes.
function get_ptr_rcv_size_req_data
inline MPI_Request * get_ptr_rcv_size_req_data()
Returns the pointer to the status of the ingoing communications of Sizes.
function get_ptr_snd_csr_req_data
inline MPI_Request * get_ptr_snd_csr_req_data()
Returns the pointer to the status of the outgoing communications of CSR.
function get_ptr_rcv_csr_req_data
inline MPI_Request * get_ptr_rcv_csr_req_data()
Returns the pointer to the status of the ingoing communications of CSR.
function Prepare
void Prepare(
const iReg nSend,
const iReg nRecv
)
Prepares the structures of the MPI messages.
Parameters:
- nSend number of outgoing communications.
- nRecv number of incoming communications.
function Send
void Send(
CommGraph &__restrict__ Graph,
CSRMAT< iReg > *__restrict__ matL,
CSRMAT< iReg > *__restrict__ matC,
CSRMAT< iReg > *__restrict__ matR,
const iReg __restrict__ icom,
const type_MPI_iReg __restrict__ dest,
const type_MPI_iReg __restrict__ tag1,
const type_MPI_iReg __restrict__ tag2,
VEC< iReg > &__restrict__ List_rows
)
Sends asynchronously the stripe of the DSMat memorized in the process.
Parameters:
- Graph communication graph of the matrix stripe to send.
- matL pointer to the lef CSR blocks of the matrix stripe to send.
- matC pointer to the diagonal CSR block of the matrix stripe to send.
- matR pointer to the right CSR blocks of the matrix stripe to send.
- icom index of the outgoing communication.
- dest recipient rank.
- tag1 tag for the size communication.
- tag2 tag for the CSR communication.
function RecvSize
void RecvSize(
const iReg __restrict__ icom,
const type_MPI_iReg __restrict__ source,
const type_MPI_iReg __restrict__ tag1,
VEC< iExt > &__restrict__ Rcv_size
)
Starts to receive the sizes of CSR blocks.
Parameters:
- icom index of the incoming communication.
- source source rank.
- tag1 tag for the size communication.
- RecvSizes incoming Sizes of CSR.
function RecvCSR
void RecvCSR(
const iReg __restrict__ icom,
const type_MPI_iReg __restrict__ source,
const type_MPI_iReg __restrict__ tag2,
const iReg __restrict__ nrows,
const iExt __restrict__ nterm,
const iReg __restrict__ offset_address_iat,
const iExt __restrict__ offset_address_ja,
CSRMAT< iReg > &__restrict__ CompactCSR
)
Starts to receive CSR blocks.
Parameters:
- icom index of the incoming communication.
- source source rank.
- tag2 tag for the CSRs communication.
- nrows number of rows of incoming CSR.
- nterm number of term of incoming CSR.
- offset_address_iat shift for the iat terms of incoming CSR.
- offset_address_ja shift for the ja and coef terms of incoming CSR.
- RecvCSR incoming compact CSR.
function nullify_snd_size
void nullify_snd_size()
Nullify send buffers for the sizes.
function nullify_snd_csr
void nullify_snd_csr()
Nullify send buffers for the sizes.
function nullify_rcv_size
void nullify_rcv_size()
Nullify receve buffers for the sizes.
function nullify_rcv_csr
void nullify_rcv_csr()
Nullify receve buffers for the sizes.
Updated on 12 February 2021 at 11:59:50 CET