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<https://urldefense.us/v3/__https://github.com/pmodels/mpich/blob/837914f6e81... >. [https://urldefense.us/v3/__https://opengraph.githubassets.com/a68c91e94d3a9d... ]<https://urldefense.us/v3/__https://github.com/pmodels/mpich/blob/837914f6e81... > mpich/src/mpid/ch4/shm/posix/posix_progress.h at 837914f6e810bbbd5e7ad391bbad9f546ffe3dab · pmodels/mpich<https://urldefense.us/v3/__https://github.com/pmodels/mpich/blob/837914f6e81... > 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<https://urldefense.us/v3/__https://github.com/pmodels/mpich/issues/7492__;!!... >, 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
participants (1)
-
Ryan Deng