Boost serialization data errors

Dear All: I am designing parallel code for MPI with linux. I am using boost::serialization::access to make the data strucutre to be transferred from one process to another process, just like transferring int data type. I got the errors as follows:-------------------------------------------------------------------- /lustre/boost_2010_6_8/boost_1_43_0/boost/config/stdlib/libstdcpp3.hpp:40:1: warning: "BOOST_HAS_THREADS" redefined<command line>:1:1: warning: this is the location of the previous definition/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/access.hpp: In static member function âstatic void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = population]â:/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/serialization.hpp:74: instantiated from âvoid boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = population]â/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/serialization.hpp:133: instantiated from âvoid boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = population]â/lustre/boost_2010_6_8/boost_1_43_0/boost/archive/detail/iserializer.hpp:182: instantiated from âvoid boost::archive::detail::iserializer<Archive, T>::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::mpi::packed_iarchive, T = population]âmyNetplanScheduler.cpp:445: instantiated from here/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/access.hpp:118: error: âstruct populationâ has no member named âserializeâ/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/access.hpp: In static member function âstatic void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive, T = population]â:/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/serialization.hpp:74: instantiated from âvoid boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive, T = population]â/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/serialization.hpp:133: instantiated from âvoid boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive, T = population]â/lustre/boost_2010_6_8/boost_1_43_0/boost/archive/detail/oserializer.hpp:148: instantiated from âvoid boost::archive::detail::oserializer<Archive, T>::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::mpi::packed_oarchive, T = population]âmyNetplanScheduler.cpp:445: instantiated from here/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/access.hpp:118: error: âstruct populationâ has no member named âserializeâmake: *** [myNetplanScheduler.o] Error 1 ------------------------------------------------------------------------- If I add the following to the class population=-------------------------------------------------typedef struct { individual *ind;protected: // provide serialization of this class, for MPI send/recv friend class boost::serialization::access; template<class Archive> void serialize(Archive& ar, const unsigned int version) { ar & ind; };} population;------------------------------------------------ I got more errors: ----------------------------------------------- /lustre/boost_2010_6_8/boost_1_43_0/boost/config/stdlib/libstdcpp3.hpp:40:1: warning: "BOOST_HAS_THREADS" redefined<command line>:1:1: warning: this is the location of the previous definition/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/access.hpp: In static member function âstatic void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = int*]â:/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/serialization.hpp:74: instantiated from âvoid boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = int*]â/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/serialization.hpp:133: instantiated from âvoid boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = int*]â/lustre/boost_2010_6_8/boost_1_43_0/boost/archive/detail/iserializer.hpp:182: instantiated from âvoid boost::archive::detail::iserializer<Archive, T>::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::mpi::packed_iarchive, T = int*]âmyNetplanScheduler.cpp:448: instantiated from here/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/access.hpp:118: error: request for member âserializeâ in âtâ, which is of non-class type âint*â/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/access.hpp: In static member function âstatic void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = double]â:/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/serialization.hpp:74: instantiated from âvoid boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = double]â/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/serialization.hpp:133: instantiated from âvoid boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive, T = double]â/lustre/boost_2010_6_8/boost_1_43_0/boost/archive/detail/iserializer.hpp:182: instantiated from âvoid boost::archive::detail::iserializer<Archive, T>::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::mpi::packed_iarchive, T = double]âmyNetplanScheduler.cpp:448: instantiated from here/lustre/boost_2010_6_8/boost_1_43_0/boost/serialization/access.hpp:118: error: request for member âserializeâ in âtâ, which is of non-class type âdoubleâ ..................--------------------------------------------- Any help is appreciated. Jack Aug. 12 2010

I think you should be using Boost.MPI Sent from my iPhone On Aug 12, 2010, at 5:16 PM, Jack Bryan <dtustudy68@hotmail.com> wrote:
I am designing parallel code for MPI with linux.
I am using boost::serialization::access to make the data strucutre to be transferred from one process to another process, just like transferring int data type.

thanks I am using boost MPI: ---------------------------------------------------- #include <boost/mpi.hpp>#include <boost/serialization/access.hpp>#include <boost/serialization/string.hpp>#include <boost/serialization/array.hpp>#include <boost/serialization/base_object.hpp>#include <boost/serialization/utility.hpp>#include <boost/optional.hpp>#include <boost/mpi/environment.hpp>#include <boost/mpi/communicator.hpp>#include <boost/progress.hpp>----------------------------------------------------- Any help is appreciated Jack Aug. 13 2010
CC: boost-users@lists.boost.org From: dave@boostpro.com Date: Fri, 13 Aug 2010 10:28:45 -0800 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Boost serialization data errors
I think you should be using Boost.MPI
Sent from my iPhone
On Aug 12, 2010, at 5:16 PM, Jack Bryan <dtustudy68@hotmail.com> wrote:
I am designing parallel code for MPI with linux.
I am using boost::serialization::access to make the data strucutre to be transferred from one process to another process, just like transferring int data type.
Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Dave Abrahams
-
Jack Bryan