Re: Isend max.message size?

Patrick Geoffray <[email protected]> Mon, 18 Sep 2006 16:18:08 -0400
Newsgroups gmane.network.myrinet.general
Organization Myricom, Inc.
Message-ID <[email protected]>
Hi Jiri,

[email protected] wrote:
> The problem is:
> When I used MPI_Isend function for exchanging data between processors (sending
> for ex. one huge message containing thousands of MPI_DOUBLE members!) and test
> the end of the Isend by MPI_Test function...the repeat loop will never end
> (means that data won't be send).
> 
> When the count (number of members are less) then everything is O.K. and MPI_Test
>  will finish both loops.


> Is it a problem with count parameter (number of items) resp.  message is too
> huge? What is the maximal message size that I can send?

The maximum message size is 4GB (length coded on 32 bits), 2GB if signed 
types are used somewhere. However, I suspect that you are far from these 
limits. In most MPI implementations, there is a different behavior if 
the message size is below or above a specific threshold (~32 KB). If the 
message is small enough, it will be sent wherever the matching receive 
as been posted on the other side. In this case, there is the possibility 
that the message will be unexpected (receive not yet posted), so it 
would need to be saved in temporary buffer. If the message is too big, 
it is not reasonable to risk it to be unexpected, so the data is sent 
only if the receive has been posted, there is a rendez-vous step 
(synchronization).

I would suspect that you do not post a valid matching MPI receive and, 
depending on the size of the message, the send completes eagerly or not.

Does your MPI code work on Ethernet ?

Patrick
-- 
Patrick Geoffray
Myricom, Inc.
http://www.myri.com