Skip to content
Snippets Groups Projects
README.rst 1.52 KiB
Newer Older
Rishi Sharma's avatar
Rishi Sharma committed
==============
Rishi Sharma's avatar
Rishi Sharma committed
decentralizepy
==============

Rishi Sharma's avatar
Rishi Sharma committed
-------------------------
Setting up decentralizepy
-------------------------

* Fork the repository.
* Clone and enter your local repository.
* Check if you have ``python>=3.8``. ::

    python --version

* (Optional) Create and activate a virtual environment. ::
  
    python3 -m venv [venv-name]
    source [venv-name]/bin/activate

Rishi Sharma's avatar
Rishi Sharma committed
* Update pip. ::

Rishi Sharma's avatar
Rishi Sharma committed
    pip3 install --upgrade pip
    pip install --upgrade pip

* On Mac M1, installing ``pyzmq`` fails with `pip`. Use `conda <https://conda.io>`_.
Rishi Sharma's avatar
Rishi Sharma committed
* Install decentralizepy for development. ::
Rishi Sharma's avatar
Rishi Sharma committed

    pip3 install --editable .\[dev\]
    
Rishi Sharma's avatar
Rishi Sharma committed
----------------
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 arguments as required.
Rishi Sharma's avatar
Rishi Sharma committed
* 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.

Rishi Sharma's avatar
Rishi Sharma committed
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
-------
Rishi Sharma's avatar
Rishi Sharma committed
* Naming. The globally unique ids of the ``processes <-> machine_id, local_rank``
Rishi Sharma's avatar
Rishi Sharma committed

Sharing
-------
* Leverage Redundancy. Privacy. Optimizations in model and data sharing.

Communication
-------------
* IPC/Network level. Compression. Privacy. Reliability
Rishi Sharma's avatar
Rishi Sharma committed

Model
-----
* Learning Model