Newer
Older
-------------------------
Setting up decentralizepy
-------------------------
* Fork the repository.
* Clone and enter your local repository.
* (Optional) Create and activate a virtual environment.
pip3 install --upgrade pip
pip install --upgrade pip
* On Mac M1, installing ``pyzmq`` fails with `pip`. Use ``conda``.
----------------
Running the code
----------------
* Choose and modify one of the config files in ``eval/{step,epoch}_configs``.
* Modify the dataset paths and ``addresses_filepath`` in the config file.
* In eval/run.sh, modify ``first_machine`` (used to calculate machine_id of all machines), ``original_config``, and other arguments as required.
* Execute eval/run.sh on all the machines simultaneously. There is a synchronization barrier mechanism at the start so that all processes start training together.
Node
----
* The Manager. Optimizations at process level.
Dataset
-------
* Static
Training
--------
* Heterogeneity. How much do I want to work?
Graph
-----
* Static. Who are my neighbours? Topologies.
Mapping
-------
* Naming. The globally unique ids of the ``processes <-> machine_id, local_rank``
Sharing
-------
* Leverage Redundancy. Privacy. Optimizations in model and data sharing.
Communication
-------------
* IPC/Network level. Compression. Privacy. Reliability