nvflare.apis.resource_manager_spec module

class ResourceConsumerSpec[source]

Bases: ABC

abstract consume(resources: dict)[source]
class ResourceManagerSpec[source]

Bases: ABC

abstract allocate_resources(resource_requirement: dict, token: str, fl_ctx: FLContext) dict[source]

Allocates resources.

Note

resource requirements and resources may be different things.

Parameters:
  • resource_requirement – a dict that specifies resource requirement

  • token – a resource reservation token returned by check_resources

  • fl_ctx – the FLContext

Returns:

A dict of allocated resources

abstract cancel_resources(resource_requirement: dict, token: str, fl_ctx: FLContext)[source]

Cancels reserved resources if any.

Parameters:
  • resource_requirement – a dict that specifies resource requirement

  • token – a resource reservation token returned by check_resources

  • fl_ctx – the FLContext

Note

If check_resource didn’t return a token, then don’t need to call this method

abstract check_resources(resource_requirement: dict, fl_ctx: FLContext) Tuple[bool, str][source]

Checks whether the specified resource requirement can be satisfied.

Parameters:
  • resource_requirement – a dict that specifies resource requirement

  • fl_ctx – the FLContext

Returns:

A tuple of (is_resource_enough, token).

is_resource_enough is a bool indicates whether there is enough resources; token is for resource reservation / cancellation for this check request.

abstract free_resources(resources: dict, token: str, fl_ctx: FLContext)[source]

Frees resources.

Parameters:
  • resources – resources to be freed

  • token – a resource reservation token returned by check_resources

  • fl_ctx – the FLContext

abstract report_resources(fl_ctx) dict[source]

Reports resources.