updo_sendrecv.c

Implement the communications routines for updown step

Summary
updo_sendrecv.cImplement the communications routines for updown step
API_CALL(send_free_down)
API_CALL(send_free_up)
API_CALL(send_testall_down)
API_CALL(send_testall_up)
API_CALL(send_waitall)
API_CALL(send_waitall_down)
API_CALL(send_waitall_up)
API_CALL(send_waitone_down)
API_CALL(send_waitone_up)
updo_down_recvCompute the contribution receipts in the updo_buffer for the backward substitution and unlock tasks which waited for it.
updo_down_sendSend the contribution to the other process.
updo_up_WaitCtrb_storageWait contribution in case where a global rhs is stored.
updo_up_recvCopy the receipts data in place in the global rhs
probe_updownTest if some communications is arrived
updo_up_WaitCtrb_nostorageWait contribution in case where a global rhs is stored.
updo_up_sendSend contribution associated to (i,j)

API_CALL(send_free_down)

void API_CALL(send_free_down)(Sopalin_Data_t *sopalin_data, INT me, INT s_index)

API_CALL(send_free_up)

void API_CALL(send_free_up)(Sopalin_Data_t *sopalin_data, INT me, INT s_index)

API_CALL(send_testall_down)

void API_CALL(send_testall_down)(Sopalin_Data_t *sopalin_data, INT me)

API_CALL(send_testall_up)

void API_CALL(send_testall_up)(Sopalin_Data_t *sopalin_data, INT me)

API_CALL(send_waitall)

void API_CALL(
   send_waitall
)(Sopalin_Data_t *sopalin_data, INT me, void (*funcfree)(Sopalin_Data_t*, INT, INT))

API_CALL(send_waitall_down)

void API_CALL(send_waitall_down)(Sopalin_Data_t *sopalin_data, INT me)

API_CALL(send_waitall_up)

void API_CALL(send_waitall_up)(Sopalin_Data_t *sopalin_data, INT me)

API_CALL(send_waitone_down)

int API_CALL(send_waitone_down)(Sopalin_Data_t *sopalin_data, INT me)

API_CALL(send_waitone_up)

int API_CALL(send_waitone_up)(Sopalin_Data_t *sopalin_data, INT me)

updo_down_recv

void API_CALL(
   updo_down_recv
)(Sopalin_Data_t *sopalin_data, void *updo_buffer, MPI_Status status, INT me)

Compute the contribution receipts in the updo_buffer for the backward substitution and unlock tasks which waited for it.

Parameters

sopalin_dataSopalin_data structure to clean
updo_bufferReceipt buffer
statusMPI communication status
meThread Id

Returns

void

updo_down_send

void API_CALL(
   updo_down_send
)(Sopalin_Data_t *sopalin_data, INT me, INT i, INT j)

Send the contribution to the other process.

Parameters

sopalin_dataSopalin_data structure to clean
meThread Id i - j -

Returns

void

updo_up_WaitCtrb_storage

void API_CALL(
   updo_up_WaitCtrb_storage
)(Sopalin_Data_t *sopalin_data, INT updo_buffer_size, void *updo_buffer, INT me, INT i)

Wait contribution in case where a global rhs is stored.

Parameters

sopalin_dataSopalin_data structure to clean
updo_buffer_sizeSize of updo_buffer
updo_bufferReceipt buffer
meThread Id
iWait contributions fot task i

Returns

void

updo_up_recv

void API_CALL(
   updo_up_recv
)(Sopalin_Data_t *sopalin_data, void *updo_buffer, MPI_Status status, INT me)

Copy the receipts data in place in the global rhs

Parameters

sopalin_dataSopalin_data structure to clean
updo_bufferReceipt buffer
statusCommunication status
meThread Id

Returns

void

probe_updown

int API_CALL(probe_updown)(MPI_Comm comm, INT tag)

Test if some communications is arrived

Parameters

commMPI comunicator
tagcommunication tag

Returns

flagresult of MPI_Iprobe

updo_up_WaitCtrb_nostorage

void API_CALL(
   updo_up_WaitCtrb_nostorage
)(Sopalin_Data_t *sopalin_data, INT updo_buffer_size, void *updo_buffer, INT me, INT i)

Wait contribution in case where a global rhs is stored.

Parameters

sopalin_dataSopalin_data structure to clean
updo_buffer_sizeSize of updo_buffer
updo_bufferReceipt buffer
meThread Id
iWait contributions fot task i

Returns

void

updo_up_send

void API_CALL(updo_up_send)(Sopalin_Data_t *sopalin_data, INT me, INT i, INT j)

Send contribution associated to (i,j)

Parameters

sopalin_dataSopalin_data structure to clean
meThread Id i - j -

Returns

void

void API_CALL(send_free_down)(Sopalin_Data_t *sopalin_data, INT me, INT s_index)
void API_CALL(send_free_up)(Sopalin_Data_t *sopalin_data, INT me, INT s_index)
void API_CALL(send_testall_down)(Sopalin_Data_t *sopalin_data, INT me)
void API_CALL(send_testall_up)(Sopalin_Data_t *sopalin_data, INT me)
void API_CALL(
   send_waitall
)(Sopalin_Data_t *sopalin_data, INT me, void (*funcfree)(Sopalin_Data_t*, INT, INT))
void API_CALL(send_waitall_down)(Sopalin_Data_t *sopalin_data, INT me)
void API_CALL(send_waitall_up)(Sopalin_Data_t *sopalin_data, INT me)
int API_CALL(send_waitone_down)(Sopalin_Data_t *sopalin_data, INT me)
int API_CALL(send_waitone_up)(Sopalin_Data_t *sopalin_data, INT me)
void API_CALL(
   updo_down_recv
)(Sopalin_Data_t *sopalin_data, void *updo_buffer, MPI_Status status, INT me)
Compute the contribution receipts in the updo_buffer for the backward substitution and unlock tasks which waited for it.
void API_CALL(
   updo_down_send
)(Sopalin_Data_t *sopalin_data, INT me, INT i, INT j)
Send the contribution to the other process.
void API_CALL(
   updo_up_WaitCtrb_storage
)(Sopalin_Data_t *sopalin_data, INT updo_buffer_size, void *updo_buffer, INT me, INT i)
Wait contribution in case where a global rhs is stored.
void API_CALL(
   updo_up_recv
)(Sopalin_Data_t *sopalin_data, void *updo_buffer, MPI_Status status, INT me)
Copy the receipts data in place in the global rhs
int API_CALL(probe_updown)(MPI_Comm comm, INT tag)
Test if some communications is arrived
void API_CALL(
   updo_up_WaitCtrb_nostorage
)(Sopalin_Data_t *sopalin_data, INT updo_buffer_size, void *updo_buffer, INT me, INT i)
Wait contribution in case where a global rhs is stored.
void API_CALL(updo_up_send)(Sopalin_Data_t *sopalin_data, INT me, INT i, INT j)
Send contribution associated to (i,j)
Close