Matthieu,
I see your point, if I avoid calling mpi_test or wait, there is no data
transfer at all.
Sincerely Yours,
Lei Shi
-
On Fri, Apr 3, 2015 at 5:17 PM, Matthieu Brucher wrote:
> If you don't need to know if the data was transferred or not, then why do
> you transfer it in the f
If you don't need to know if the data was transferred or not, then why do
you transfer it in the first place? The schema seems kind of strange, as
you don't have any clue that the data was actually transferred. Actually
without Wait and Test, you can pretty much assume you don't transfer
anything.
Hi Jeff,
Thanks for your reminder. I don't need to make sure the data is correct or
not. I know it sounds crazy at first time, but there are some numerical
schemes designed for this situation. I just want to call
MPI_ISend/MPI_IRecv without calling waiting or testing but can still run my
program s
On Apr 3, 2015, at 12:50 PM, Lei Shi wrote:
>
> P.S. Pavan suggests me to use MPI_Request_free. I will give it a try.
Keep in mind that you have zero indication of when a send or receive completes
if you MPI_Request_free (Pavan implied this, too). You could be reading half a
message from a p
Hi Jeff,
Yes, the memory issue caused by Isend/Irecv without calling MPI_Wait
probably is the reason. Attached is my test results showing that calling
MPI_Isend without using MPI_Wait at all leads to a wired wtime for my
program. The Wtime should be linear, but some jumps show up after several
ite
Hi Matthieu,
Thanks for your help. That is my understanding too and is verified by my
test code. But I think there may be still a way to do it without calling
wait or test. For my case, I just don't need to worry about the received
data is correct or not (latest one or the old initial data)
Since
Fair enough.
My main point should probably be summarized as: MPI_BSEND isn't worth it; there
are other, less-confusing, generally-more-optimized alternatives.
> On Apr 3, 2015, at 11:20 AM, Balaji, Pavan wrote:
>
> Jeff,
>
> Your blog post seems to confuse what implementations currently do
In the general case, MPI defines that you *have* to call one of the MPI_Test or
MPI_Wait functions to finish the communication request. If you don't do so,
you're basically leaking resources (e.g., memory).
In a single-threaded MPI implementation, the call to MPI_Test/MPI_Wait/etc. may
be wher
Yes. I think the blog post gives 10 excellent reasons why. :-)
> On Apr 3, 2015, at 2:40 AM, Lei Shi wrote:
>
> Hello,
>
> I want to use buffered sends. Read a blog said it is evil,
> http://blogs.cisco.com/performance/top-10-reasons-why-buffered-sends-are-evil
>
> Is it true or not? Thank
Hi,
I think you have to call either Wait or Test to make the communications
move forward in the general case. Some hardware may have a hardware thread
that makes the communication, but usually you have to make it "advance"
yourself by either calling Wait ot Test.
Cheers,
Matthieu
2015-04-03 5:4
Hello,
I want to use buffered sends. Read a blog said it is evil,
http://blogs.cisco.com/performance/top-10-reasons-why-buffered-sends-are-evil
Is it true or not? Thanks!
Sincerely Yours,
Lei Shi
-
I want to use non-blocking send/rev MPI_Isend/MPI_Irev to do communication.
But in my case, I don't really care what kind of data I get or it is ready
to use or not. So I don't want to waste my time to do any synchronization
by calling MPI_Wait or etc API.
But when I avoid calling MPI_Wait, my pr
12 matches
Mail list logo