Straggler Handling Interface
The Open Federated Learning (OpenFL) framework supports straggler handling interface for identifying stragglers or slow collaborators for a round and ending the round early as a result of it. The updates from these stragglers are not aggregated in the aggregator model.
The following are the straggler handling algorithms supported in OpenFL:
CutoffTimeBasedStragglerHandling
- Identifies stragglers based on the cutoff time specified in the settings. Arguments to the function are:
Cutoff Time (straggler_cutoff_time), specifies the cutoff time by which the aggregator should end the round early.
Minimum Reporting (minimum_reporting), specifies the minimum number of collaborators needed to aggregate the model.
For example, in a federation of 5 collaborators, if
straggler_cutoff_time
(in seconds) is set to 20 andminimum_reporting
is set to 2, atleast 2 collaborators (or more) would be included in the round, provided that the time limit of 20 seconds is not exceeded. In an event whereminimum_reporting
collaborators don’t make it within thestraggler_cutoff_time
, the straggler handling policy is disregarded.PercentageBasedStragglerHandling
- Identifies stragglers based on the percetage specified. Arguments to the function are:
Percentage of collaborators (percent_collaborators_needed), specifies a percentage of collaborators enough to end the round early.
Minimum Reporting (minimum_reporting), specifies the minimum number of collaborators needed to aggregate the model.
For example, in a federation of 5 collaborators, if
percent_collaborators_needed
is set to 0.8 andminimum_reporting
is set to 1, the first 4 collaborators (80%) to report to aggregator are selected for that round.
Demonstration of adding the straggler handling interface
The example template, torch_cnn_mnist_straggler_check, uses the PercentageBasedStragglerHandling
. To gain a better understanding of how experiments perform, you can modify the percent_collaborators_needed or minimum_reporting parameter in the template plan.yaml or even choose CutoffTimeBasedStragglerHandling function instead:
straggler_handling_policy : template : openfl.component.straggler_handling_functions.CutoffTimeBasedStragglerHandling settings : straggler_cutoff_time : 20 minimum_reporting : 1