Description
Thanks to #590 we can now roll our own proto structures + serialization code. We should do some work to try and make our program.proto
wire size and serialization code (python and C++) as fast as possible. Anecdotally I can say that in smaller simulation workloads ( < 10 qubits ) The lions share of the time in C++ is actually spent deserializing, this shouldn't be the case.
Some good steps for this project would be to:
-
Slim down the code in
op_serializer.py
and other modules as much as possible so that we have the bare minimum needed for our functionality. i.e. we don't allow boolean types in our serialization. -
Draft a new proto design spec for
program.proto
with an eye for fast serialization time and small wire size. -
Gradually implement that new spec which would require steady changes in both python and C++ code.