Hi Gilles,

I enhanced my simple test program to dump the contents of the buffer:
If I am not mistaken, it appears that the unpack is not doing the endian
conversion.

kindest regards
Mike

Good:
send data 000004d2 0000162e
MPI_Pack_external: 0
buffer size: 8
Buffer contents
d2, 04, 00, 00, 2e, 16, 00, 00,
MPI_unpack_external: 0
recv data 000004d2 0000162e

Bad: --enable-heterogeneous
send data 000004d2 0000162e
MPI_Pack_external: 0
buffer size: 8
Buffer contents
d2, 04, 00, 00, 2e, 16, 00, 00,
MPI_unpack_external: 0
recv data d2040000 2e160000

kindest regards
Mike

On 11 February 2016 at 19:31, Gilles Gouaillardet <
gilles.gouaillar...@gmail.com> wrote:

> Michael,
>
> I think it is worst than that ...
>
> without --enable-heterogeneous, it seems the data is not correctly packed
> (e.g. it is not converted to big endian), at least on a x86_64 arch.
> unpack looks broken too, but pack followed by unpack does work.
> that means if you are reading data correctly written in external32e format,
> it will not be correctly unpacked.
>
> with --enable-heterogeneous, it is only half broken
> (I do not know yet whether pack or unpack is broken ...)
> and pack followed by unpack does not work.
>
> I will double check that tomorrow
>
> Cheers,
>
> Gilles
>
> On Thursday, February 11, 2016, Michael Rezny <michael.re...@monash.edu>
> wrote:
>
>> Hi Ralph,
>> you are indeed correct. However, many of our users
>> have workstations such as me, with OpenMPI provided by installing a
>> package.
>> So we don't know what has been configured.
>>
>> Then we have failures, since, for instance, Ubuntu 14.04 by default
>> appears to have been built
>> with heterogeneous support! The other (working) machine is a large HPC,
>> and it seems OpenMPI was built
>> without heterogeneous support.
>>
>> Currently we work around the problem for packing and unpacking by having
>> a compiler switch
>> that will switch between calls to pack/unpack_external and pac/unpack.
>>
>> It is only now we started to track down what the problem actually is.
>>
>> kindest regards
>> Mike
>>
>> On 11 February 2016 at 15:54, Ralph Castain <r...@open-mpi.org> wrote:
>>
>>> Out of curiosity: if both systems are Intel, they why are you enabling
>>> hetero? You don’t need it in that scenario.
>>>
>>> Admittedly, we do need to fix the bug - just trying to understand why
>>> you are configuring that way.
>>>
>>>
>>> On Feb 10, 2016, at 8:46 PM, Michael Rezny <michael.re...@monash.edu>
>>> wrote:
>>>
>>> Hi Gilles,
>>> I can confirm that with a fresh download and build from source for
>>> OpenMPI 1.10.2
>>> with --enable-heterogeneous
>>> the unpacked ints are the wrong endian.
>>>
>>> However, without --enable-heterogeneous, the unpacked ints are correct.
>>>
>>> So, this problem still exists in heterogeneous builds with OpenMPI
>>> version 1.10.2.
>>>
>>> kindest regards
>>> Mike
>>>
>>> On 11 February 2016 at 14:48, Gilles Gouaillardet <
>>> gilles.gouaillar...@gmail.com> wrote:
>>>
>>>> Michael,
>>>>
>>>> does your two systems have the same endianness ?
>>>>
>>>> do you know how openmpi was configure'd on both systems ?
>>>> (is --enable-heterogeneous enabled or disabled on both systems ?)
>>>>
>>>> fwiw, openmpi 1.6.5 is old now and no more maintained.
>>>> I strongly encourage you to use openmpi 1.10.2
>>>>
>>>> Cheers,
>>>>
>>>> Gilles
>>>>
>>>> On Thursday, February 11, 2016, Michael Rezny <michael.re...@monash.edu>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>> I am running Ubuntu 14.04 LTS with OpenMPI 1.6.5 and gcc 4.8.4
>>>>>
>>>>> On a single rank program which just packs and unpacks two ints using
>>>>> MPI_Pack_external and MPI_Unpack_external
>>>>> the unpacked ints are in the wrong endian order.
>>>>>
>>>>> However, on a HPC, (not Ubuntu), using OpenMPI 1.6.5 and gcc 4.8.4 the
>>>>> unpacked ints are correct.
>>>>>
>>>>> Is it possible to get some assistance to track down what is going on?
>>>>>
>>>>> Here is the output from the program:
>>>>>
>>>>>  ~/tests/mpi/Pack test1
>>>>> send data 000004d2 0000162e
>>>>> MPI_Pack_external: 0
>>>>> buffer size: 8
>>>>> MPI_unpack_external: 0
>>>>> recv data d2040000 2e160000
>>>>>
>>>>> And here is the source code:
>>>>>
>>>>> #include <stdio.h>
>>>>> #include <mpi.h>
>>>>>
>>>>> int main(int argc, char *argv[]) {
>>>>>   int numRanks, myRank, error;
>>>>>
>>>>>   int send_data[2] = {1234, 5678};
>>>>>   int recv_data[2];
>>>>>
>>>>>   MPI_Aint buffer_size = 1000;
>>>>>   char buffer[buffer_size];
>>>>>
>>>>>   MPI_Init(&argc, &argv);
>>>>>   MPI_Comm_size(MPI_COMM_WORLD, &numRanks);
>>>>>   MPI_Comm_rank(MPI_COMM_WORLD, &myRank);
>>>>>
>>>>>   printf("send data %08x %08x \n", send_data[0], send_data[1]);
>>>>>
>>>>>   MPI_Aint position = 0;
>>>>>   error = MPI_Pack_external("external32", (void*) send_data, 2,
>>>>> MPI_INT,
>>>>>           buffer, buffer_size, &position);
>>>>>   printf("MPI_Pack_external: %d\n", error);
>>>>>
>>>>>   printf("buffer size: %d\n", (int) position);
>>>>>
>>>>>   position = 0;
>>>>>   error = MPI_Unpack_external("external32", buffer, buffer_size,
>>>>> &position,
>>>>>           recv_data, 2, MPI_INT);
>>>>>   printf("MPI_unpack_external: %d\n", error);
>>>>>
>>>>>   printf("recv data %08x %08x \n", recv_data[0], recv_data[1]);
>>>>>
>>>>>   MPI_Finalize();
>>>>>
>>>>>   return 0;
>>>>> }
>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>>> devel mailing list
>>>> de...@open-mpi.org
>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>> Link to this post:
>>>> http://www.open-mpi.org/community/lists/devel/2016/02/18573.php
>>>>
>>>
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>> Link to this post:
>>> http://www.open-mpi.org/community/lists/devel/2016/02/18575.php
>>>
>>>
>>>
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>> Link to this post:
>>> http://www.open-mpi.org/community/lists/devel/2016/02/18576.php
>>>
>>
>>
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post:
> http://www.open-mpi.org/community/lists/devel/2016/02/18579.php
>

Reply via email to