Hi again James
I believe the standard way of ensuring that control info is separated from transmitted date is through the tagging mechanism. On may tag different types of messages differently, This is what we used in the mandelbrot example, I mentioned. However, I am totally open to other suggestions. If you have a simple example that shows the problem, I suggest you post it to the list and we can all look at it and see if indeed it reveals a bug or whether it is just the way the underlying MPI standard is suppose to work.
I believe the problem occurs because of the control messages that are
sent before any data. Imagine two senders are blocking on a .send().
The receiver blocks using any_source, the control message is received
but there is nothing in pypar (that I could see) that restricts the
data to come from the same sender as the control message. I hope this
is somewhat clear - I can elaborate further if necessary. I think what
is needed is for the receiver to ensure the control message and data
come from the same source - this is not currently the behaviour with
On Feb 2, 2008 10:46 PM, Ole Nielsen <firstname.lastname@example.org> wrote:
> Hi James
> Thanks for your mail,
> There is a demo that uses any_source in a very simple master-slave code for
> computing the mandelbrot set. See
> Would you be able to verify if this one runs on your system?
> However, there is currently no unit test for that functionality - only the
> demo which is working correctly.
> If you have discovered a bug, the best thing would be to write the smallest
> possible example that reveals the bug - i.e. an example that demonstrates
> where it goes wrong. We can then turn that into a unit test and then address
> the problem.
> Bear in mind that Pypar is just a wrapper around a c-implementation of the
> MPI standard so it relies on that to be correct.
> Best regards
> Ole Nielsen
> On Feb 2, 2008 1:13 AM, James Philbin <email@example.com> wrote:
> > Hi,
> > I think i've been hit by a bug in pypar relating to
> > receive(pypar.any_source). The control message is received from
> > any_source as correct, but then the data should be received from the
> > sender of the control message, not any source.
> > James