nvflare.app_common.resource_managers.list_resource_manager module

class ListResourceManager(resources: Dict[str, List], expiration_period: int = 30)[source]

Bases: ResourceManagerSpec, FLComponent

Manage a list of resource units.

For example:

  • require 2, current resources is [0, 1, 2, 3, 4, 5] => return [0,1] after allocation the current resources become [2, 3, 4, 5]

  • require 3, current resources [2, 3, 4, 5] => return [2, 3, 4]

Constructor

Parameters
  • resources (dict) – Specify the list of resources unit

  • expiration_period (int) – Number of seconds to hold the resources reserved. If check_resources is called but after “expiration_period” no allocate resource is called, then the reserved resources will be released.

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

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

check_resources(resource_requirement: dict, fl_ctx: ~nvflare.apis.fl_context.FLContext) -> (<class 'bool'>, typing.Union[str, NoneType])[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 (check_result, token).

check_result is a bool indicates whether there is enough resources; token (optional) is for resource reservation / cancellation for this check request.

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

handle_event(event_type: str, fl_ctx: FLContext)[source]

Handles events.

Parameters
  • event_type (str) – event type fired by workflow.

  • fl_ctx (FLContext) – FLContext information.