Mentions légales du service

Skip to content

Change 'ScaffoldClient.collect_aux_var' behavior on unused module.

ANDREY Paul requested to merge scaffold-update into develop

This MR introduces a small behavior change of the Scaffold-implementing pair of OptiModule classes.

  • Until now, calling the collect_aux_var method of a ScaffoldClient module that had not processed any gradients raised a RuntimeError.
  • This commit changes that behavior for something less stringent: warn a RuntimeWarning that such a call is unexpected, but return a conventional, zero-valued scalar state.
  • Conversely, upon receiving such states, ScaffoldServer ignores the client (i.e. it is not part of the global state's update calculation).
  • The rationale behind this change is that it may happen that a client does not perform any optimization step, e.g. due to their DP budget having been saturated. In that case, we do not want the FL process to crash, but rather the client to be ignored as part of the update process.

Merge request reports