Boost logo

Boost Users :

Subject: Re: [Boost-users] [Boost.MPI] question about serializingcustomobject
From: Cristobal Navarro (axischire_at_[hidden])
Date: 2010-08-29 20:05:04


hello again

i wrote my code for sending one object from rank 0 to rank 1 process sing
boost.mpi because it is very simple.
it worked when sending a string just like in the documentation,

however when i sent the object i showed earlier i am getting errors.

terminate called after throwing an instance of
'boost::archive::archive_
exception'
 what(): class version St8multimapIiiSt4lessIiESaISt4pairIKiiEEE
[lenovo00:06116] *** Process received signal ***
[lenovo00:06116] Signal: Aborted (6)
[lenovo00:06116] Signal code: (-6)
[lenovo00:06116] [ 0] [0x71f410]
[lenovo00:06116] [ 1] /lib/tls/i686/cmov/libc.so.6(abort+0x182) [0x74da82]
[lenovo00:06116] [ 2]
/usr/lib/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x14f)
[0x4da52f]
[lenovo00:06116] [ 3] /usr/lib/libstdc++.so.6(+0xbd465) [0x4d8465]
[lenovo00:06116] [ 4] /usr/lib/libstdc++.so.6(+0xbd4a2) [0x4d84a2]
[lenovo00:06116] [ 5] /usr/lib/libstdc++.so.6(+0xbd5e1) [0x4d85e1]
[lenovo00:06116] [ 6]
bin/release/plattice(_ZN5boost13serialization15throw_exceptionINS_7archive17archive_exceptionEEEvRKT_+0x3e)
[0x80ee491]
...
...
...
  says something about multimap type error and other
things. if i remove the multimap attribute from the serialization method i
get another
error, and if i comment almost everything and only keep 2 integers
(numNodes numEdges) for testing... the receiving object has different values
on
those integers.

this can be a problem of the internal serializing which uses
packed_oarchive/iarchive instead of the binary_oarchive/iarchive i was
testing earlier when it worked??
any indication is welcome if you need more debugging information i can
provide

Cristobal <http://www.youtube.com/neoideo>

On Sat, Aug 28, 2010 at 3:11 PM, Matthias Troyer <troyer_at_[hidden]>wrote:

>
> On 28 Aug 2010, at 18:36, Jeff Flinn wrote:
>
> > Dave Abrahams wrote:
> >> BoostPro Computing, http://boostpro.com
> >> Sent from coveted but awkward mobile device
> >> --
> >> On Aug 28, 2010, at 6:15 AM, Jeff Flinn <TriumphSprint2000_at_[hidden]>
> wrote:
> >>> So what happens if the some data member that is a base class pointer
> gets modified to point to some other instance of a derived class? Doesn't
> that change the 'structure'?
> >> Yes of course. However, many MPI applications never need to do that.
> >
> > No doubt many don't. I'm just trying to gain a better understanding of
> boost.mpi and provide some of that feedback you asked for else thread. :-)
> >
> > Does MPI detect those changes automatically resending the skeleton
> information as required? Or does the user code need to explicitly manage
> such situations? Or does this disallow usage of the skeleton approach
> altogether in these situations.
>
> The user code needs to explicitly manage this, and if your code typically
> changes the structure, then I recommend to just use the normal send and
> recv mechanism which sends the whole object.
>
> Matthias
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



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