Config
This module exposes the pre-configurations of the Payloads implementations. Each configuration contains the instance of the related payload. In this way, it is easy to make sure the CentralNode and the Node are using the same compression scheme.
Fed.Config.Configuration — TypeConfigurationInterface used by the CentralNode and the Node to work with any configuration.
BaseConfig
Fed.Config.BaseConfig — TypeBaseConfig(
serverurl::String,
num_comm_rounds::Int,
fraction_clients::Float32,
num_total_clients::Int
)Part of the configuration which are common to any type of configuration.
VanillaConfig
Fed.Config.VanillaConfig — TypeVanillaConfig(base::BaseConfig) <: ConfigurationConfiguration for the baseline, where no compression is applied. The raw data are sent over the network. This configuration instanciates a VanillaPayloadSerde.
QuantizedConfig
Fed.Config.QuantizedConfig — TypeQuantizedConfig{T <: Unsigned}(base::BaseConfig) <: ConfigurationConfiguration for compression through quantization. The quantization type needs to be speficied when the configuration is instanciated. This configuration instanciates a QuantizedPayloadSerde.
QDiffConfig
Fed.Config.QDiffConfig — TypeQDiffConfig{T <: Unsigned}(
base::BaseConfig,
chunksize::Int,
is_client::Bool
) <: ConfigurationApply the same quantization algorithm used by QuantizedConfig, but also further reduces the size of the paylaod by adding client-side "diff- deduplication", where unchanged chunks of data are not sent back to the server. This configuration instanciates a QDiffPayloadSerde.
GDConfig
Fed.Config.GDConfig — TypeGDConfig{T <: Unsigned}(
base::BaseConfig,
chunksize::Int,
fingerprint::Function,
msbsize::T,
store_host::String,
store_port::Int,
is_client::Bool
) <: ConfigurationCompress the payload by using a GD Store, producing a generally deduplicated GDFile which are exchanged between the clients and the server. This configuration instanciates a GDPayloadSerde and is making use of the GD.jl library to handle the generalized deduplication logic.