Actions
Feature #341
openCall MPI_Testany from time to time to improve performance
Status:
New
Priority:
Normal
Assignee:
-
Start date:
08/25/2017
Due date:
% Done:
0%
Estimated time:
Description
While doing some tests with YAC, I noticed that: when setting up a list of MPI_Isends, the performance improved, if from time to time MPI_Testany is called (MPI_Testsome did produce better results).
We should check whether YAXT could also benefit from this.
The following is a pseudo code showing the idea, which is based an the Routine psmile_bsend written by Hubert Ritzdorf for OASIS4.
int num_open_requests = 0
MPI_Requests requests[total_num_send_recv_msgs]
for all send/recv msgs
MPI_Request * request = &requests[num_open_requests++]
set up MPI_Isend/MPI_Irecv
int flag = 1, idx
while (flag && (num_open_requests >= 64))
MPI_Testany(num_open_requests, requests, &idx, &flag, MPI_STATUS_IGNORE)
if (flag && (idx != MPI_UNDEFINED))
requests[idx] = requests[--num_open_requests]
MPI_Waitall(num_open_requests, requests, MPI_STATUSES_IGNORE)
No data to display
Actions