Overmind is a fast, scalable, and highly configurable simulator for decentralized machine learning in mobile environments.
To run Overmind, you'll need to set up the following components:
- Overmind Containers
- Postgres Database
- File Storage Service
Overmind can be set up on either AWS or personal workstations. In the future, we will support other cloud platforms like GCP or Azure.
To configure and run Overmind containers, install docker, Kubernetes Command Line Tool kubectl, and create resources on AWS EKS. To run Overmind containers locally, install minicube.
Build your own overmind image with docker. You would need to update the image for every change you make to your code that implements device behavior of your decentralized learning algorithm. Here, we'll proceed with pre-built algorithms. Deploy the overmind containers by updating kubernetes configuration.
kubectl apply -f configs/k8s/ovm.yaml
Check if the services are running with kubectl get all
command.
Start off a simulation by running driver.py
with a tag (name of the simulation) and associated configuration file.
python3 driver.py --tag mass_test_droppcl --cfg configs/dist_swarm/example_gossip.json