[serialization] platform independence (32 & 64bit windows)

Hi We are using boost serialization our product which was 32bit only till now. Now we have started building it on 64bit as well. On finding that boost::binary_archive is not platform independent, we seem to have 2 options: 1. Use text_archive - (but are worried about performance since the serialized data is approx 500MB even after gzip compression) 2. Use the eos portable archive - (but it is updated only till boost 1.49. We are using 1.53) So my questions are: 1. One (and only one) of our archives created by our 32 bit executable is successfully read in by the 64 bit executable while the rest throw exception on reading the archive signature. If the platform is encoded in the signature, why is that one archive being read in successfully. 2. Which of the above two approaches would be better and why. Thanks in advance. Yours Sincerely Ashish Varman

???? ?????? wrote:
Hi
We are using boost serialization our product which was 32bit only till now. Now we have started building it on 64bit as well. On finding that boost::binary_archive is not platform independent, we seem to have 2 options:
1. Use text_archive - (but are worried about performance since the serialized data is approx 500MB even after gzip compression)
2. Use the eos portable archive - (but it is updated only till boost 1.49. We are using 1.53)
So my questions are:
1. One (and only one) of our archives created by our 32 bit executable is successfully read in by the 64 bit executable while the rest throw exception on reading the archive signature. If the platform is encoded in the signature, why is that one archive being read in successfully.
I couldn't say - maybe you just got lucky.
2. Which of the above two approaches would be better
If performance is an issue, I would try them both. It shouldn't be too tough to run a test.
and why.
Hmmm - It's hard for me to know which would be better. Note that the portable binary archive doesn't support floating point values
Thanks in advance.
Yours Sincerely Ashish Varman

Hi ??????, We have used eos portable archives for years for the storage of terabytes of experimental and simulation physics data with floats, doubles (including NaNs and non finite values) and of course signed and unsigned integers of various sizes, both on 32bits and 64bits archs on various kind of machines (many Linux flavors and a few MacOS X). AFAIK, eos version 5.0 works with Boost 1.49 but it works prefectly for us with Boost 1.53 (I suspect it is ok for 1.5X too). In conclusion I strongly recommend to use eos stuff. Should this bunch of classes fail to work with some future versions of Boost, I'm pretty sure that some people (at least Christian Pfligersdorffer the author or I modestly) would do the best to provide fixes. best regards frc --
On 17/07/2013 20:36, Robert Ramey wrote: ???? ?????? wrote: Hi
We are using boost serialization our product which was 32bit only till now. Now we have started building it on 64bit as well. On finding that boost::binary_archive is not platform independent, we seem to have 2 options:
1. Use text_archive - (but are worried about performance since the serialized data is approx 500MB even after gzip compression)
2. Use the eos portable archive - (but it is updated only till boost 1.49. We are using 1.53)
So my questions are:
1. One (and only one) of our archives created by our 32 bit executable is successfully read in by the 64 bit executable while the rest throw exception on reading the archive signature. If the platform is encoded in the signature, why is that one archive being read in successfully.
I couldn't say - maybe you just got lucky.
2. Which of the above two approaches would be better
If performance is an issue, I would try them both. It shouldn't be too tough to run a test.
and why.
Hmmm - It's hard for me to know which would be better. Note that the portable binary archive doesn't support floating point values
Thanks in advance. Adresse/address:
Laboratoire de Physique Corpusculaire de Caen (UMR 6534) ENSICAEN 6, Boulevard du Marechal Juin 14050 CAEN Cedex FRANCE Courriel/e-mail: mauger@lpccaen.in2p3.fr Tél./phone: 02 31 45 25 12 / (+33) 2 31 45 25 12 Fax: 02 31 45 25 49 / (+33) 2 31 45 25 49
Yours Sincerely Ashish Varman
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- François Mauger LPC Caen-CNRS/IN2P3-UCBN-ENSICAEN Département de Physique -- Université de Caen Basse-Normandie

Hi Based on Robert and Francois's answers below, I will be going ahead to test eos portable archives first. Our data is mostly all vectors of doubles. I suppose in case of any issues, I can always fall back on text_archive, perhaps with a performance penalty. I will try to revert back when I have actual results available regarding size and performance. Yours Sincerely Ashish Varman On 18-07-2013 01:17, Francois Mauger wrote:
Hi ??????,
We have used eos portable archives for years for the storage of terabytes of experimental and simulation physics data with floats, doubles (including NaNs and non finite values) and of course signed and unsigned integers of various sizes, both on 32bits and 64bits archs on various kind of machines (many Linux flavors and a few MacOS X). AFAIK, eos version 5.0 works with Boost 1.49 but it works prefectly for us with Boost 1.53 (I suspect it is ok for 1.5X too).
In conclusion I strongly recommend to use eos stuff. Should this bunch of classes fail to work with some future versions of Boost, I'm pretty sure that some people (at least Christian Pfligersdorffer the author or I modestly) would do the best to provide fixes.
best regards
frc --
On 17/07/2013 20:36, Robert Ramey wrote: ???? ?????? wrote: Hi
We are using boost serialization our product which was 32bit only till now. Now we have started building it on 64bit as well. On finding that boost::binary_archive is not platform independent, we seem to have 2 options:
1. Use text_archive - (but are worried about performance since the serialized data is approx 500MB even after gzip compression)
2. Use the eos portable archive - (but it is updated only till boost 1.49. We are using 1.53)
So my questions are:
1. One (and only one) of our archives created by our 32 bit executable is successfully read in by the 64 bit executable while the rest throw exception on reading the archive signature. If the platform is encoded in the signature, why is that one archive being read in successfully. I couldn't say - maybe you just got lucky.
2. Which of the above two approaches would be better
If performance is an issue, I would try them both. It shouldn't be too tough to run a test.
and why. Hmmm - It's hard for me to know which would be better. Note that the portable binary archive doesn't support floating point values
Thanks in advance. Adresse/address: Laboratoire de Physique Corpusculaire de Caen (UMR 6534) ENSICAEN 6, Boulevard du Marechal Juin 14050 CAEN Cedex FRANCE Courriel/e-mail: mauger@lpccaen.in2p3.fr Tél./phone: 02 31 45 25 12 / (+33) 2 31 45 25 12 Fax: 02 31 45 25 49 / (+33) 2 31 45 25 49
Yours Sincerely Ashish Varman
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (3)
-
Francois Mauger
-
Robert Ramey
-
आशीष वर्मन्