Project

General

Profile

Actions

Feature #341

open

Call MPI_Testany from time to time to improve performance

Added by Moritz Hanke over 7 years ago.

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

Also available in: Atom PDF