Sorry for the delay.

My C++ is a bit rusty, but this does not seem correct to me.

You're making the datatypes relative to an arbitrary address (&lPtrBase) in a 
static method on each class.  You really need the datatypes to be relative to 
each instance's *this* pointer.

Doing so allows MPI to read/write the data relative to the specific instance of 
the objects that you're trying to send/receive.

Make sense?


On Apr 23, 2013, at 5:01 PM, Eric Chamberland 
<eric.chamberl...@giref.ulaval.ca> wrote:

> another information: I just tested the example with Intel MPI 4.0.1.007 and 
> it works correctly...
> 
> So the problem seems to be only with OpenMPI... which is the default 
> distribution we use... :-/
> 
> Is my example code too long?
> 
> Eric
> 
> Le 2013-04-23 09:55, Eric Chamberland a écrit :
>> Sorry,
>> 
>> here is the attachment...
>> 
>> Eric
>> 
>> On 04/23/2013 09:54 AM, Eric Chamberland wrote:
>>> Hi,
>>> 
>>> I have sent a previous message showing something that I think is a bug
>>> (or maybe a misuse, but...).
>>> 
>>> I worked on the example sent to have it simplified: now it is almost
>>> half of the lines of code and the structures are more simple... but
>>> still showing the wrong behaviour.
>>> 
>>> Briefly, we construct different MPI_datatype and nests them into a final
>>> type which is a:
>>> {MPI_LONG,{{MPI_LONG,MPI_CHAR}*2}
>>> 
>>> Here is the output from OpenMPI 1.6.3:
>>> 
>>>  Rank 0 send this:
>>>  i: 0 => {{0},{{3,%},{7,5}}}
>>>  i: 1 => {{1},{{3,%},{7,5}}}
>>>  i: 2 => {{2},{{3,%},{7,5}}}
>>>  i: 3 => {{3},{{3,%},{7,5}}}
>>>  i: 4 => {{4},{{3,%},{7,5}}}
>>>  i: 5 => {{5},{{3,%},{7,5}}}
>>> MPI_Recv returned success and everything in MPI_Status is correct after
>>> receive.
>>>  Rank 1 received this:
>>>  i: 0 => {{0},{{3,%},{-999,$}}} *** ERROR ****
>>>  i: 1 => {{1},{{3,%},{-999,$}}} *** ERROR ****
>>>  i: 2 => {{2},{{3,%},{-999,$}}} *** ERROR ****
>>>  i: 3 => {{3},{{3,%},{-999,$}}} *** ERROR ****
>>>  i: 4 => {{4},{{3,%},{-999,$}}} *** ERROR ****
>>>  i: 5 => {{5},{{3,%},{-999,$}}} *** ERROR ****
>>> 
>>> Here is the expected output, obtained with mpich-3.0.3:
>>> 
>>>  Rank 0 send this:
>>>  i: 0 => {{0},{{3,%},{7,5}}}
>>>  i: 1 => {{1},{{3,%},{7,5}}}
>>>  i: 2 => {{2},{{3,%},{7,5}}}
>>>  i: 3 => {{3},{{3,%},{7,5}}}
>>>  i: 4 => {{4},{{3,%},{7,5}}}
>>>  i: 5 => {{5},{{3,%},{7,5}}}
>>> MPI_Recv returned success and everything in MPI_Status is correct after
>>> receive.
>>>  Rank 1 received this:
>>>  i: 0 => {{0},{{3,%},{7,5}}} OK
>>>  i: 1 => {{1},{{3,%},{7,5}}} OK
>>>  i: 2 => {{2},{{3,%},{7,5}}} OK
>>>  i: 3 => {{3},{{3,%},{7,5}}} OK
>>>  i: 4 => {{4},{{3,%},{7,5}}} OK
>>>  i: 5 => {{5},{{3,%},{7,5}}} OK
>>> 
>>> Is it related to the bug reported here:
>>> http://www.open-mpi.org/community/lists/devel/2013/04/12267.php ?
>>> 
>>> Thanks,
>>> 
>>> Eric
>>> 
>>> 
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> 
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


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