The problem is that for the moment, the implementation uses
Isend/Irecv, but you don't know what will happen in the future
(hopefully, it will use something else).
If your program bypasses the required call to MPI_Iscatterv, then you
only have one option: implement MPI_Iscatterv yourself, with only
Thanks a lot.
You are right I am using MPI_Iscatterv, in a domain decomposition code, but
the problem is that for the domain which I have no data to send fro, the
program will jump the routine. I can not redesign the whole program.
Do you know what will happen to send call with zero size buffer? Ca
If you are using Iscatterv (I guess it is that one), it handles the
pairs itself. You shouldn't bypass it because you think it is better.
You don't know how it is implemented, so just call Iscatterv for all
ranks.
2014-07-16 14:33 GMT+01:00 Ziv Aginsky :
> I know the standard, but what if I can no
I know the standard, but what if I can not bypass the send message. For
example if I have MPI_Iscatter and for some ranks the send buffer has zero
size. At those ranks it will jump the MPI_Iscatter routine, which means I
have some zero size send and no receive.
On Wed, Jul 16, 2014 at 3:28 PM,
Hi,
The easiest would also to bypass the Isend as well! The standard is
clear, you need a pair of Isend/Irecv.
Cheers,
2014-07-16 14:27 GMT+01:00 Ziv Aginsky :
> I have a loop in which I will do some MPI_Isend. According to the MPI
> standard, for every send you need a recv
>
> If one or sev
I have a loop in which I will do some MPI_Isend. According to the MPI
standard, for every send you need a recv
If one or several of my MPI_Isend have zero size buffer, should I still
have the mpi_recv or I can do it without recv? I mean on the processor
which I should recv the data I know prio