Ruediger Berlich writes:

> Hi there,
>
> I am in the process of speeding up communication between a server and its
> clients. Communication involves serialized class data. Messages can be as
> large as 100 kilobytes.

> I have done some measurements which have shown that, in a cluster with
> Gigabit networking, most overhead of the parallelisation seems to come from
> the Broker infrastructure and the process of (de-)serialization. Network
> latency and/or bandwidth seems to play only a minor role in this
> environment.

> Hence, apart from optimizing my broker, I'm looking for ways to optimize the
> serialization process, as used in my application. As messages are discarded
> as soon as they reach the recipient, versions of serialized data do not play
> an important role.

I don't find any mention of "message" in the 1.42 Boost
Serialization documentation.  Are you using MPI?

The obvious thing you've not mentioned is compression.  I use
bzip2 to compress and decompress data -

http://webEbenezer.net/misc/SendCompressedBuffer.hh
http://webEbenezer.net/misc/ReceiveCompressedBuffer.hh

Besides using bzip2, I use variable-length integers to encode
the size of the compressed data.  It works to use a fixed-size
integer as well, but frequently you can shave a couple of
bytes off the total by using a variable-length integer.


Brian Wood
http://webEbenezer.net
(651) 251-9384

"The kingdom of heaven is like a treasure hidden
in the field, which a man found and hid again;
and from joy over it he goes and sells all that
he has and buys that field."