How to use multiple datasets to train heterogeneous clients?

Hi,

So I have multiple datasets with me, and I want to train each client on a particular dataset. For example, if I have 10 datasets, I would have 10 clients, and each client would be trained on a specific dataset. I am unable to figure this out. The examples given in the documentation are unable to answer this question of mine. I see that the flower itself divides the dataset and sends that to the client. This is okay in an experimental setting, but in a daily production use case, each client would have its own dataset.

Hi @rakeshpaul,
Thanks for the question. It depends on whether you’re using Flower in simulation or production. In production, each client is a separate process/device and loads its own local dataset e.g. via a local path, DB, or env var etc.
In simulation, all clients run on one machine, so you simulate “local datasets” by using cid to map each client ID to a different dataset.

Hi @mohammad,

Thanks for your reply. I’m testing it out on my own system, so it’s a local simulation. I understand that I need each client to run on a different terminal, and the server would use the local port of the machine.

How should I be running it then?

flwr run . --run-config dataset/path/for/specific/client

Should it be like the command shown above? Would this create issues on the server side? Or do we have to run it in some other commands?