Hi, I had some questions about how MPIX_Streams work under the hood. I had posted a couple of times on the github issues page before about it but thought this might be a more appropriate place for it. Right now, my code involves many MPIX_Stream_isends/MPIX_Stream_irecvs
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
Hi,
I had some questions about how MPIX_Streams work under the hood. I had posted a couple of times on the github issues page before about it but thought this might be a more appropriate place for it.
Right now, my code involves many MPIX_Stream_isends/MPIX_Stream_irecvs as processes asynchronously communicate with one another, and I have a separate thread in the background constantly advancing progress on streams.
It's my understanding that all operations on a stream must occur serially. I assume this means that things operations like sending and receiving, calling MPIX_Stream_progress/MPI_Wait cannot occur at the same time without locks? Are there any other operations
on streams that cannot occur concurrently?
In addition, I had also triggered the assertion
here.
|
|
Official MPICH Repository. Contribute to pmodels/mpich development by creating an account on GitHub.
github.com
|
Does this mean that I cannot send multiple messages at the same time if it's between two different streams? On the github issue
here, Hui Zhou mentioned that it is due to messaging protocol consistency. I'm not quite sure what he means by it and what that means in terms of what I can and cannot do in my application involving MPIX_Streams.
Thanks,
Ryan