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 >