cruise
cruise copied to clipboard
Introduce a worker-side component that aggregates partial updates
Part of #821.
To enable multi-threaded execution in workers, we need to put aside the intermediate updates (e.g., gradient, topic changes) from threads and aggregate the values when we update the model. The aggregated result will then be pushed to the Server (or updated to cache later).
We will introduce a separate component (e.g., DeltaAggregator) that takes charge of such feature.
We can first implement the simplest version of keeping all the updates until requested to aggregate them. Then we can improve it by aggregating beforehand; for example, when the number of partial results is getting beyond some threshold.