FederatedScope
FederatedScope copied to clipboard
[WIP] Add client manager in server
Target
- We are planning to add a consultation stage before training for differential privacy and other algorithms.
- We decompose it into several PRs to avoid large modification at one time.
What's in this PR
- This PR is to add client manager in server, which is responsible for
- Maintain the status of clients, e.g., working, idle or unseen (in training)
- Manage the clients, including registration, client-related information storage (client_resource, [TODO]join_in_info)
Why
- Currently, the client management is too decentralized. For example,
self.join_in_infostores the client information,self.id_unseen_clientrecords the unseen clients during training andself.samplerrecords the status of the clients (Maybe sampler should be in charge of the client status)