The most important folders are the edml
and config
folders. Their function will be explained in the following sections.
Config
This folder contains your final experiment configuration files. These files define a hierarchical configuration structure. You can read up on what that entails in the Configuration section. What you need to know now is that your experiment configuration will include other, smaller configuration files. These are either defined by yourself in the config
folder too, or are already provided by the edml
framework.
EDML
The main folder containing the Python classes that make up the framework. The package also includes pre-defined configuration files that can be used for your experiment configuration. The following table provides a short description of every sub-package.
Folder | Description |
---|---|
configs |
Contains pre-defined configuration files that you can include into your experiment configuration. |
controllers |
The different controller implementations and related mechanisms like the "Adaptive Threshold" implementation and device scheduling logic reside here. |
core |
Contains the simulation's model classes: device , battery , client and server
|
dataset_utils |
Contains utility functions for loading the included datasets: CIFAR, MNIST and PTBXL. |
generated |
Contains the generated Python classes that are derived from the Protobuf files. |
helpers |
Various utility functions and helper classes that are re-used around the framework. |
models |
Contains the PyTorch models and related constructs. |
proto |
Contains the protobuf files that define the inter-device communication protocol. |
tests |
Unit tests. |
Terminology
Controller: A class responsible for coordinating the training process across devices. They usually synchronize experiments, initialize training and exchange (partially) trained model data. Client: A part of a model that only resides at the data provider. Usually defined using some form of cut layer. Server: The remaining part of the model. Calculates gradients and initializes backpropagation. Device: A device has a client and server part. For some training strategies, these are combined and treated as one, for others they are separate concepts.