Skip to content

Commit

Permalink
Merge pull request #3 from Xiao-Chenguang/instruction
Browse files Browse the repository at this point in the history
add instruction to readme
  • Loading branch information
Xiao-Chenguang authored Oct 22, 2024
2 parents 055e2ec + f19f3e7 commit 0c19eab
Showing 1 changed file with 24 additions and 2 deletions.
26 changes: 24 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,28 @@ Make a copy of both the [config.yaml](./config.yaml) and [fedavg_demo.py](./exam
python fedavg_demo.py
```

Here we recommend you to use the [UV](https://docs.astral.sh/uv/) as a python environment manager to create a clean environment for the experiments.

After install `uv`, you can create a new environment and run a `FedMind` example with the following command:
```bash
uv init FL-demo
cd FL-demo
source .uv/bin/activate

uv add fedmind torchvision
wget https://raw.githubusercontent.com/Xiao-Chenguang/FedMind/refs/heads/main/examples/fedavg_demo.py
wget https://raw.githubusercontent.com/Xiao-Chenguang/FedMind/refs/heads/main/config.yaml

uv run python fedavg_demo.py
```


## Features
- Parallel training speed up.
- Serialization for limited resources.
This FL framework provides two client simulation modes depending on your resources:
- Parallel training speed up for powerful resources.
- Serialization for limited resources.

This is controlled by the parameter `NUM_PROCESS` which can be set in the [config.yaml](./config.yaml).
Setting `NUM_PROCESS` to 0 will use the serialization mode where each client trains sequentially in same global round.
Setting `NUM_PROCESS > 0` will use the parallel mode where `NUM_PROCESS` workers consume the clients tasks in parallel.
The recommended value for `NUM_PROCESS` is the number of **CPU cores** available.

0 comments on commit 0c19eab

Please sign in to comment.