flower icon indicating copy to clipboard operation
flower copied to clipboard

Lazy Async Aggregation

Open Iacob-Alexandru-Andrei opened this issue 1 year ago • 0 comments

Issue

Aggregation of potentially async results.

Description

Flower server implementations may choose to aggregate results as soon as they are received.

The current aggregations block computation until the total number of clients necessary to compute the new parameters or the total number of samples has been reached.

Related issues/PRs

Proposal

A form of in-place aggregation that is mathematically equivalent but does not require pre-computing the total number of client samples within the round.

Explanation

The new aggregation method allows for no memory overhead over the memory requirements of a single client when using an amenable iterable implementation.

Similarly, it permits overlapping client training with aggregation time, thus potentially reducing the overhead of server aggregation to zero if the server is capable of aggregating clients as soon as they arrive.

Checklist

  • [x] Implement proposed change
  • [ ] Write tests
  • [ ] Update documentation
  • [ ] Update the changelog entry below
  • [x] Make CI checks pass
  • [ ] Ping maintainers on Slack (channel #contributions)

Changelog entry

Any other comments?

Iacob-Alexandru-Andrei avatar Jan 25 '24 21:01 Iacob-Alexandru-Andrei