regards,
Mudassar
Date: Fri, 15 Jul 2011 07:04:34 -0400
From: Terry Dontje <
terry.dontje@oracle.com>
Subject: Re: [OMPI users] Urgent Question regarding,
MPI_ANY_SOURCE.
To:
users@open-mpi.org
Message-ID: <
4E201EC2.803@oracle.com>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
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.dontje@oracle.com
> <mailto:
terry.dontje@oracle.com>>
> Subject: Re: [OMPI users] Urgent Question regarding,
MPI_ANY_SOURCE.
> To:
users@open-mpi.org
<mailto:
users@open-mpi.org>
> Message-ID: <
4E201785.6010101@oracle.com
> <mailto:
4E201785.6010101@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 <
jsquyres@cisco.com
<mailto:
jsquyres@cisco.com>>
> > *To:* Mudassar Majeed <
mudassarm30@yahoo.com
> <mailto:
mudassarm30@yahoo.com>>
> > *Cc:* Open MPI Users <
users@open-mpi.org
<mailto:
users@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 <
jsquyres@cisco.com
<mailto:
jsquyres@cisco.com>
> <mailto:
jsquyres@cisco.com
<mailto:
jsquyres@cisco.com>>>
> > > To: Mudassar Majeed <
mudassarm30@yahoo.com
> <mailto:
mudassarm30@yahoo.com>
> > <mailto:
mudassarm30@yahoo.com
<mailto:
mudassarm30@yahoo.com>>>;
Open
> MPI Users <
users@open-mpi.org
<mailto:
users@open-mpi.org>
> > <mailto:
users@open-mpi.org
<mailto:
users@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