+1

I reiterate what I said before:

>> > You will always only receive messages that were sent to *you*.  
>> > There's no MPI_SEND_TO_ANYONE_WHO_IS_LISTENING functionality, for 
>> > example.  So your last statement: "But when it captures with .. 
>> > MPI_ANY_SOURCE and MPI_ANY_TAG, the receiver will capture any message 
>> > (even not targetted for it)" is incorrect.


When process A calls MPI_SEND to send to process B, then the message is sent 
only to B.  Not to any other process.  Regardless of whether you use 
ANY_SOURCE, ANY_TAG, both, or neither.


On Jul 15, 2011, at 7:04 AM, Terry Dontje wrote:

> Well MPI_Recv does give you the message that was sent specifically to the 
> rank calling it by any of the processes in the communicator.  If you think 
> the message you received should have gone to another rank then there is a bug 
> somewhere.  I would start by either adding debugging printf's to your code to 
> trace the messages.   Or narrowing down the code to a small kernel such that 
> you can prove to yourself that MPI is working the way it should and if not 
> you can show us where it is going wrong.
> 
> --td
> 
> On 7/15/2011 6:51 AM, Mudassar Majeed wrote:
>> I get the sender's rank in status.MPI_SOURCE, but it is different than 
>> expected. I need to receive that message which was sent to me, not any 
>> message.  
>> 
>> regards,
>> 
>> Date: Fri, 15 Jul 2011 06:33:41 -0400
>> From: Terry Dontje <terry.don...@oracle.com>
>> Subject: Re: [OMPI users] Urgent Question regarding, MPI_ANY_SOURCE.
>> To: us...@open-mpi.org
>> Message-ID: <4e201785.6010...@oracle.com>
>> Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
>> 
>> Mudassar,
>> 
>> You can do what you are asking.  The receiver uses MPI_ANY_SOURCE for 
>> the source rank value and when you receive a message the 
>> status.MPI_SOURCE will contain the rank of the actual sender not the 
>> receiver's rank.  If you are not seeing that then there is a bug somewhere.
>> 
>> --td
>> 
>> On 7/14/2011 9:54 PM, Mudassar Majeed wrote:
>> > Friend,
>> >              I can not specify the rank of the sender. Because only 
>> > the sender knows to which receiver the message is to be sent. The 
>> > receiver does not know from which sender the message will come. I am 
>> > trying to do a research work on load balancing in MPI application 
>> > where load is redistributed, so in that I require a receiver to 
>> > receive a load value from a sender that it does not know. On the other 
>> > hand, the sender actually calculates, to which receiver this load 
>> > value should be sent. So for this, I want sender to send a message 
>> > containing the load to a receiver, but receiver does not know from 
>> > which sender the message will come. See, it is like send receiver in 
>> > DATAGRAM sockets. The receiver, receives the message on the IP and 
>> > port, the message which was directed for it. I want to have same 
>> > behavior. But it seems that it is not possible in MPI. Isn't it?
>> >
>> > regards,
>> > Mudassar
>> >
>> > ------------------------------------------------------------------------
>> > *From:* Jeff Squyres <jsquy...@cisco.com>
>> > *To:* Mudassar Majeed <mudassar...@yahoo.com>
>> > *Cc:* Open MPI Users <us...@open-mpi.org>
>> > *Sent:* Friday, July 15, 2011 3:30 AM
>> > *Subject:* Re: [OMPI users] Urgent Question regarding, MPI_ANY_SOURCE.
>> >
>> > Right.  I thought you were asking about receiving *another* message 
>> > from whomever you just received from via ANY_SOURCE.
>> >
>> > If you want to receive from a specific sender, you just specify the 
>> > rank you want to receive from -- not ANY_SOURCE.
>> >
>> > You will always only receive messages that were sent to *you*.  
>> > There's no MPI_SEND_TO_ANYONE_WHO_IS_LISTENING functionality, for 
>> > example.  So your last statement: "But when it captures with .. 
>> > MPI_ANY_SOURCE and MPI_ANY_TAG, the receiver will capture any message 
>> > (even not targetted for it)" is incorrect.
>> >
>> > I guess I still don't understand your question...?
>> >
>> >
>> > On Jul 14, 2011, at 9:17 PM, Mudassar Majeed wrote:
>> >
>> > >
>> > > I know this, but when I compare status.MPI_SOURCE with myid, they 
>> > are different. I guess you need to reconsider my question. The 
>> > MPI_Recv function seems to capture message from the queue with some 
>> > search parameters like source, tag etc. So in case the receiver does 
>> > not know the sender and wants to receive only that message which was 
>> > sent for this receiver. But when it captures with source as 
>> > MPI_ANY_SOURCE and MPI_ANY_TAG, the receiver will capture any message 
>> > (even not targetted for it).
>> > >
>> > > regards,
>> > > Mudassar
>> > >
>> > >
>> > > From: Jeff Squyres <jsquy...@cisco.com <mailto:jsquy...@cisco.com>>
>> > > To: Mudassar Majeed <mudassar...@yahoo.com 
>> > <mailto:mudassar...@yahoo.com>>; Open MPI Users <us...@open-mpi.org 
>> > <mailto:us...@open-mpi.org>>
>> > > Sent: Friday, July 15, 2011 1:58 AM
>> > > Subject: Re: [OMPI users] Urgent Question regarding, MPI_ANY_SOURCE.
>> > >
>> > > When you use MPI_ANY_SOURCE in a receive, the rank of the actual 
>> > sender is passed back to you in the status.MPI_SOURCE.
>> > >
>> > > On Jul 14, 2011, at 7:55 PM, Mudassar Majeed wrote:
>> > >
>> > > > Hello people,
>> > > >                        I am trapped in the following problem plz 
>> > help me. Suppose a process A sends a message to process B. The process 
>> > B will receive the message with MPI_Recv with MPI_ANY_SOURCE in the 
>> > source argument. Let say process B does not know that A is the sender. 
>> > But I want B to receive message from process A (the one who actually 
>> > sends the message to process B). But if I use MPI_ANY_SOURCE, then any 
>> > message from any source is captured by process B (let say there are 
>> > other processes sending messages). Instead of MPI_ANY_SOURCE I cannot 
>> > use A in the source argument as B does not know about the sender. What 
>> > should I do in this situation ?
>> > > >
>> > > > regards,
>> > > > Mudassar Majeed
>> > > > _______________________________________________
>> > > > users mailing list
>> > > > us...@open-mpi.org <mailto:us...@open-mpi.org>
>> > > > http://www.open-mpi.org/mailman/listinfo.cgi/users
>> > >
>> > >
>> > > --
>> > > Jeff Squyres
>> > > jsquy...@cisco.com <mailto:jsquy...@cisco.com>
>> > > For corporate legal information go to:
>> > > http://www.cisco.com/web/about/doing_business/legal/cri/
>> > >
>> > >
>> > >
>> >
>> >
>> > -- 
>> > Jeff Squyres
>> > jsquy...@cisco.com <mailto:jsquy...@cisco.com>
>> > For corporate legal information go to:
>> > http://www.cisco.com/web/about/doing_business/legal/cri/
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > users mailing list
>> > us...@open-mpi.org
>> > http://www.open-mpi.org/mailman/listinfo.cgi/users
>> 
>> _______________________________________________
>> users mailing list
>> 
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
> 
> -- 
> <Mail Attachment.gif>
> Terry D. Dontje | Principal Software Engineer
> Developer Tools Engineering | +1.781.442.2631
> Oracle - Performance Technologies
> 95 Network Drive, Burlington, MA 01803
> Email terry.don...@oracle.com
> 
> 
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to