Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost MPI Serialization : Sending serialized array of user defined classes
From: Matthias Troyer (troyer_at_[hidden])
Date: 2010-06-04 02:11:29


Hi Noman,

Do you just want to know how it can be done or what would be needed to make it efficient?

To just make it work, all you have to do is write serialize functions for your Array class and your complex struct.

To make it efficient there are two considerations:

1.) it is very inefficient to store your complex numbers as a std::vector - each complex number will require a dynamic allocation. Why don't you just use std::complex or implement real_imag as a fixed-size array of length 2.

2.) to make array serialization of built in types and some of your own structs efficient you need to use array wrappers when you serialize your Array class.

3.) consider using the skeleton&contents mechanism if you need to send your array often and only the contents but not the size of the array change

I hope this helps

Matthias

On 3 Jun 2010, at 12:13, Noman Javed wrote:

> I want to send my Array class using boost Mpi
>
> template<class T>
> class Array
> {
> private:
> int size;
> T* data;
> public:
> // constructors + other stuff
> };
>
> Here T can be any built in type or user defined type.
> Suppose I have a class complex
>
> struct complex
> {
> std::vector<double> real_imag; // contain two elements
> };
>
> How can I send Array<complex> using Boost::Mpi + serialization.
>
> Thanks in anticipation
> Regards
> Noman
>
>
> _______________________________________________
> 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