It strikes me that you should be able to use the tag to identify the 
message that is to be received.  In other words, you receive a message 
from any source but with a tag that identifies the message as containing 
the load value that is expected.

- Jeff



From:   Jeff Squyres <jsquy...@cisco.com>
To:     Open MPI Users <us...@open-mpi.org>
List-Post: users@lists.open-mpi.org
Date:   07/15/2011 07:36 AM
Subject:        Re: [OMPI users] Urgent Question regarding, 
MPI_ANY_SOURCE.
Sent by:        users-boun...@open-mpi.org



+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/


_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to