This repo implements algorithms for decentralised optimisation from the paper https://arxiv.org/abs/2405.18031
Specifically:
- Centralised Gradient Descent (for comparison)
- Decentralised Gradient Descent
- Decentralised Communication Sliding
- ZO-SADOM
- ProxNSADOM (new)
python >= 3.10
To reproduce them follow the instructions:
(i prefer uv, but feel free to use your favorite package manager)
git clone https://github.com/somvy/decentralised_optimisation && cd decentralised_optimisation
python -m pip install uv
uv venv && . .venv/bin/activate
uv pip install -r requirements.txt
wandb login
logs are saved to wandb
specify desirable configuration (method, task, network topology, number of nodes etc) in config.yaml
export PYTHONPATH=.
python run.py