Boost logo

Boost Users :

Subject: Re: [Boost-users] [Boost.Uuid] Passing UUIDs with MPI
From: Matthias Troyer (troyer_at_[hidden])
Date: 2010-07-05 23:23:27


On 5 Jul 2010, at 19:08, Andy Tompkins wrote:

> Hi Didier,
>
> On Thu, 10 Jun 2010 22:53 +0200, "Didier Devaurs"
> <ddevaurs_at_[hidden]> wrote:
>> Hello,
>>
>> I'm having troubles trying to pass a uuid with MPI routines.
>> Since a uuid is serialized as a primitive type, I was expecting it could
>> be declared as an MPI datatype using:
>> BOOST_IS_MPI_DATATYPE(boost::uuids::uuid)
>> and sent via MPI routines.
>
> This makes sense to me from reading the docs:
> http://www.boost.org/doc/libs/1_43_0/doc/html/mpi/tutorial.html#mpi.user_data_types

You have to be very careful when declaring a type as primitive. Declaring a type as a primitive type means that EVERY archive that you want to use the type with has to provide special support for your type. I would strongly discourage you from doing so.

BOOST_IS_MPI_DATATYPE(boost::uuids::uuid) can certainly be used, but this implies that either the type is serializable and you provide a serialize function, or you provide special support for the type by manually overloading the get_mpi_datatype function. The recommended course of action is providing a serialize function.

Matthias


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net