[mpich-discuss] Does Asynchronous Allgather work in background without any effects on computing cores?

Richard Warren Richard.Warren at hdfgroup.org
Tue Feb 21 12:50:23 CST 2017


Hi Sunwoo,
In general I think that you should be aware that the asynchronous operations in MPI are there to take advantage of RDMA capable networks.   With most simple TCP/IP based networks, the interfaces are passive and thus data movement between peers can only be made by actively calling MPI functionality.  You’ve already noticed that messages will be advanced by calling MPI_Wait.   The general point to be made is that on non-RDMA capable networks, an independent thread or your main program can call MPI_Wait or other MPI calls such as MPI_Test to force the library to actively move data that has been queued by an asynchronous operation.  In summary, the answer to your overall question is at best: a qualified yes (depending on the network capabilities of your cluster or if you employ multithreading).

I hope that explanation helps…
Richard A. Warren (HDFgroup)

From: Sunwoo Lee <sunwoolee1.2014 at u.northwestern.edu>
Reply-To: "discuss at mpich.org" <discuss at mpich.org>
Date: Tuesday, February 21, 2017 at 12:19 PM
To: "discuss at mpich.org" <discuss at mpich.org>
Subject: [mpich-discuss] Does Asynchronous Allgather work in background without any effects on computing cores?

Hi,

I would like to implement a software that communication and computation are performed simultaneously. That is, while communication for the current data is done, the next data is computed overlapping with the communication.

I expected asynchronous MPI such as Iallgather() would make the communication and computation overlapped. But it seems like the communication is not started until I call MPI_Wait().

With a simple toy application, I compared the two cases. MPI_IAllgather + MPI_Wait() versus MPI_Allgather. The issue is that MPI_Wait() takes almost same time with MPI_Allgather. I can guess the communication is just started when I call MPI_Wait.

My question is, could asynchronous MPI functions work background so that computing cores do other works while the communication is performed?

Thank you.

Best,
Sunwoo Lee
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20170221/64a24d7c/attachment.html>
-------------- next part --------------
_______________________________________________
discuss mailing list     discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss


More information about the discuss mailing list