[GiNaC-devel] Faster unarchiving of large equation systems

Richard B. Kreckel kreckel at in.terlu.de
Wed Dec 12 22:46:17 CET 2018


Hi Klaus,

On 06.12.18 07:29, Kemlath Orcslayer via GiNaC-devel wrote:
> This approach is ABI compatible to older code but requires read_archive_MPI members in all ginac::basic derived objects. I’d like to stress that this does not introduce any MPI dependencies in GiNaC, the MPI serialisation code is separate and merely utilises the new archiving system.

Thanks for sharing your experience with us!

If unarchiving is relevant for such large numbers of symbols, then the
current design with a sym_lst is quite bad. You are the first to report
this here, though.

Note that adding a virtual member function does generally break the ABI
of derived classes! They have to be recompiled.

Why not fix this by adding a second signature to read_archive, i.e. by
just dropping your _MPI prefix? We also have to consider that
user-written subclasses might have implemented their own read_archive
function. Maybe, we could have a virtual base class of read_archive_MPI
(or the overload without _MPI) that interfaces to the existing
read_archive function so we could keep API compatibility for some time?

Anyhow, it sounds interesting. Can you post your code, please?

Cheers
  -richy.
-- 
Richard B. Kreckel
<https://in.terlu.de/~kreckel/>


More information about the GiNaC-devel mailing list