nvflare.app_opt.xgboost.histogram_based_v2.controller module

class XGBFedController(num_rounds: int, configure_task_name='config', configure_task_timeout=10, start_task_name='start', start_task_timeout=10, job_status_check_interval: float = 2.0, max_client_op_interval: float = 900.0, progress_timeout: float = 3600.0, client_ranks=None, in_process=True)[source]

Bases: XGBController

Controller for XGB.

Parameters:
  • adaptor (adaptor_component_id - the component ID of server target) –

  • rounds (num_rounds - number of) –

  • task (start_task_name - name of the start) –

  • timeout. (start_task_timeout - time to wait for clients' responses to the start task before) –

  • task

  • timeout.

  • job (job_status_check_interval - how often to check client statuses of the) –

  • client (max_client_op_interval - max amount of time allowed between XGB ops from a) –

  • progress. (progress_timeout- the maximum amount of time allowed for the workflow to not make any) – In other words, at least one participating client must have made progress during this time. Otherwise, the workflow will be considered to be in trouble and the job will be aborted.

  • client_ranks – client rank assignments. If specified, must be a dict of client_name => rank. If not specified, client ranks will be randomly assigned. No matter how assigned, ranks must be consecutive integers, starting from 0.

get_adaptor(fl_ctx: FLContext)[source]