]> https://gitweb.dealii.org/ - dealii.git/commit
Simplify the logic of CellDataTransferBuffer::(un)pack_data(). 4528/head
authorWolfgang Bangerth <bangerth@colostate.edu>
Mon, 19 Jun 2017 11:46:40 +0000 (05:46 -0600)
committerWolfgang Bangerth <bangerth@colostate.edu>
Wed, 21 Jun 2017 01:38:52 +0000 (19:38 -0600)
commit5dd10c2cefdaba5f8ce43099978b037d2d5ed1de
tree64e66e8c74f51c68845eff8552f8ee2165f647ef
parent86e3cf6179b553e33a52b4eb0791cf843e64bb76
Simplify the logic of CellDataTransferBuffer::(un)pack_data().

Specifically, instead of serializing by hand with memcpy etc, use the BOOST
facilities for serialization. This works for 2 out of 3 members of this class
without problem, and the last one is easy to deal with as well.

Secondly, serialize into a gzip compressed stream to reduce the amount of data to
transfer. This reduces the size of messages significantly; for example, in the
last cycle of step-40, we get the following data -- old packet size on the left,
new (compressed) data size on the right:
    6400   1694
    8440   2200
    8440   2412
    6400   1925
    7828   2042
    6060   1589
    1504    583
    1504    520
    6060   1849
    7828   2280
    6060   1947
    7828   2375
    1504    612
      76    102
      76    104
    6400   2025
    8440   2537

I did also try to run things with BOOST's bzip2 compressor instead of gzip,
given that bzip2 often does a better job than gzip, but apparently that
isn't the case here as I get the following:
    6400   1912
    8440   2381
    8440   2712
    6400   2230
    7828   2197
    1504    681
    6060   2177
    6060   1803
    1504    556
    7828   2678
    6060   2285
    7828   2738
    1504    720
      76    122
      76    123
    6400   2392
    8440   2896
source/dofs/dof_handler_policy.cc

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.