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.