NICTA / stateline

Distributed Markov Chain Monte Carlo
Other
28 stars 11 forks source link

Comms in binary #88

Closed AlistaiReid closed 7 years ago

AlistaiReid commented 8 years ago

More than 50% of the profiled run-time of stateline-server is string packing and unpacking.

This will require changes to:

darrnshn commented 8 years ago

This is pure speculation since I haven't profiled the code:

lmccalman commented 8 years ago

all good points =) I believe the worker time prediction is done on job type and worker at the moment-- but could well be wrong about that. This unnecessary dynamic allocation is a big thing we should fix soon.

darrnshn commented 8 years ago

We should do #32 first so we can measure the performance improvements.

darrnshn commented 8 years ago

Also, an old idea was to use something like protobuf/flatbuffers to remove most of the serialisation code and make it easier to communicate with other languages. However, most of these serialisation libaries have fancy features like backwards-compatibility which we don't really need ATM. So we may incur an unwanted performance overhead.

EDIT: We could go for a compromise, where the client facing communications are done in protobuf but the internal server communications is done with raw text.

darrnshn commented 7 years ago

Using binary protocol for the entire system. Using both is slow because we have to convert between protobuf and binary.