Thanks very much both Sohail and Matthias for your reply!.
I finally got it working (I didn't have Boost 1.35 in any machine.)
The increase in the performance is *really* nice: in small, but relevant runs
of my code, I got an overall speed-up of around 300% just by serializing the
input/output of the Blitz++ arrays. (This small run saves 1 minute in
writing and later reading around 10^5 maps holding 10^5 doubles each,
compared to the use of operators<<,>> from Blitz++)
I'm commenting my experience here for the record.
1) You need Boost 1.35 (prior versions do not have the support for dense
arrays that Sohail mentioned.)
2) You need to build Boost serialization (although in some parts of the
docs says it is headers only) and link your code against it.
3) There is a bug in the library, a fix is here:
http://svn.boost.org/trac/boost/ticket/1822
4) When writing to/reading from a boost::binary_archive open the streams you
pass to the archives in the std::ios::binary mode.
The code relevant for the serialization of the Blitz++ arrays is shown below.
The serialization of the STL container (std::map or whatever) is done by
including the proper header (as explained in the serialization docs.)
/**
* @typedef Defines a matrix type for the example.
* Generalizations to higher-order tensors are trivial
*/
typedef blitz::Array