nvflare.app_opt.xgboost.histogram_based.controller module

class XGBFedController(train_timeout: int = 300, port: int | None = None)[source]

Bases: Controller

Federated XGBoost training controller for histogram-base collaboration.

It starts the XGBoost federated server and kicks off all the XGBoost job on each NVFlare client. The configuration is generic for this component and no modification is needed for most training jobs.

Parameters:
  • train_timeout (int, optional) – Time to wait for clients to do local training in seconds.

  • port (int, optional) – the port to open XGBoost FL server

Raises:
  • TypeError – when any of input arguments does not have correct type

  • ValueError – when any of input arguments is out of range

control_flow(abort_signal: Signal, fl_ctx: FLContext)[source]

This is the control logic for the RUN.

NOTE: this is running in a separate thread, and its life is the duration of the RUN.

Parameters:
  • fl_ctx – the FL context

  • abort_signal – the abort signal. If triggered, this method stops waiting and returns to the caller.

process_result_of_unknown_task(client: Client, task_name, client_task_id, result: Shareable, fl_ctx: FLContext)[source]

Process result when no task is found for it.

This is called when a result submission is received from a client, but no standing task can be found for it (from the task queue)

This could happen when: - the client’s submission is too late - the task is already completed - the Controller lost the task, e.g. the Server is restarted

Parameters:
  • client – the client that the result comes from

  • task_name – the name of the task

  • client_task_id – ID of the task

  • result – the result from the client

  • fl_ctx – the FL context that comes with the client’s submission

start_controller(fl_ctx: FLContext)[source]

Starts the controller.

This method is called at the beginning of the RUN.

Parameters:
  • fl_ctx – the FL context. You can use this context to access services provided by the

  • example (framework. For) –

  • your (you can get Command Register from it and register) –

  • modules. (admin command) –

stop_controller(fl_ctx: FLContext)[source]

Stops the controller.

This method is called right before the RUN is ended.

Parameters:
  • fl_ctx – the FL context. You can use this context to access services provided by the

  • example (framework. For) –

  • your (you can get Command Register from it and unregister) –

  • modules. (admin command) –