Boost logo

Boost Users :

Subject: [Boost-users] [Boost.Uuid] Passing UUIDs with MPI
From: Didier Devaurs (ddevaurs_at_[hidden])
Date: 2010-06-10 16:53:49


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.

I've written a short program to illustrate the problem. It compiles but produces a "segmentation fault" error when I'm trying to run it:

#include <iostream>
#include <boost/mpi.hpp>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_serialize.hpp>

BOOST_IS_MPI_DATATYPE(boost::uuids::uuid)

int main()
{
  boost::mpi::environment env;
  boost::mpi::communicator world;

  if (world.rank() == 0) {
    boost::uuids::uuid u;
    u = boost::uuids::random_generator()();
    std::cout << "u = " << u << std::endl;
    world.send(1, 0, u);
  }
  else {
    boost::uuids::uuid v;
    world.recv(0, 0, v);
    std::cout << "v = " << v << std::endl;
  }
  return 0;
}

Does anybody have an idea whether passing uuids would be possible, and if yes what is wrong in my code?

Thank you,
Didier Devaurs


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