v1/resourcegroup.proto#
Resource Groups manage power policies for temporary workload allocations on datacenter hardware. They provide ephemeral power management that overrides topology defaults during job execution.
A resource group is a collection of compute resources (nodes) allocated for a specific workload, such as a SLURM job or machine learning training run. Resource groups temporarily override the topology-specified power policies of their entities during workload execution, then restore topology defaults when the workload completes.
Resource groups follow a 5-step lifecycle:
CREATE - Create an empty, inactive resource group with optional default power policy
ADD/REMOVE - Add or remove compute resources (nodes); for active groups, policies are applied or reverted immediately and power is reallocated
ACTIVATE - Apply power policies to hardware and mark the group as active
UPDATE (Optional) - Dynamically adjust power policies during workload execution
DELETE - Deactivate and cleanup, restoring topology defaults
Power Policy Hierarchy#
Resource groups use a 3-level policy hierarchy to determine effective power settings:
Entity-level policy - Specific policy for individual nodes (highest priority)
Resource group policy - Default policy for all nodes in the group
Topology policy - Baseline policy from the datacenter topology (lowest priority)
Dynamic Power Management#
Resource groups support dynamic power management (DPM) through:
Power Reservation Steering (PRS) - Automatic power redistribution based on telemetry
Policy Updates - Runtime policy adjustments for optimization
GPU Workload Profiles - Hardware-specific power optimization for GPU workloads
Integration with Workload Schedulers#
Resource groups are designed to integrate with workload schedulers like SLURM:
Use external IDs to map to scheduler job IDs (e.g., SLURM_JOB_ID)
Follow scheduler lifecycle events (job start/end)
Support scheduler-driven power policy updates
Power policies are defined in policy.proto, and topology entities are defined in topology.proto. Workload-specific optimizations use telemetry data structures from common.proto.
Services#
ResourceGroupManagementService#
ResourceGroupManagementService manages ephemeral power policy allocations for workloads
This service provides APIs to create, manage, and monitor resource groups - collections of compute resources with customized power policies for specific workloads. Resource groups temporarily override topology-specified power policies during workload execution, enabling dynamic power management optimized for specific computational tasks.
The service integrates with workload schedulers like SLURM to provide power management throughout the workload lifecycle. It supports both static policy assignment and dynamic policy updates based on real-time telemetry data.
Resource groups must be created from an active topology. The topology defines the available entities and baseline power policies that resource groups can override.
ResourceGroupCreate#
rpc ResourceGroupCreate(ResourceGroupCreateRequest) returns ResourceGroupCreateResponse
Create a new empty and inactive resource group.
This is the first step in the resource group lifecycle. The created resource group is initially empty (no resources) and inactive (no policies applied to hardware). Resources must be added and the group activated before power policies take effect.
ResourceGroupDelete#
rpc ResourceGroupDelete(ResourceGroupDeleteRequest) returns ResourceGroupDeleteResponse
Deactivate and delete a given resource group
This permanently removes the resource group and restores all associated hardware resources to their topology-specified power policies. If the resource group is active, it is automatically deactivated before deletion. This is typically called when a workload completes.
ResourceGroupList#
rpc ResourceGroupList(ResourceGroupListAllRequest) returns ResourceGroupListAllResponse
List all available resource groups
Returns comprehensive information about all resource groups in the system, including their activation status, assigned resources, and power policies. This is used for monitoring, administration, and troubleshooting resource group state.
ResourceGroupAddResources#
rpc ResourceGroupAddResources(ResourceGroupAddResourcesRequest) returns ResourceGroupAddResourcesResponse
Add resources to a given resource group.
This assigns compute resources (nodes) to the resource group. Resources use the resource-group power policy. If the resource group is active, policies are applied immediately and power is reallocated; if inactive, the assignment is stored for activation.
ResourceGroupRemoveResources#
rpc ResourceGroupRemoveResources(ResourceGroupRemoveResourcesRequest) returns ResourceGroupRemoveResourcesResponse
Remove resources from a given resource group.
This removes compute resources from the resource group. If active, policies are reverted to topology defaults and power is reallocated; if inactive, resources are simply removed.
ActivateResourceGroup#
rpc ActivateResourceGroup(ActivateResourceGroupRequest) returns ActivateResourceGroupResponse
Activate a given resource group. The resource group must be inactive.
This applies the resource group’s power policies to the assigned hardware resources and marks the group as active. The activation process validates power allocation constraints and applies policies to the hardware. Once active, the resource group manages power policies for its assigned resources until deactivation.
ResourceGroupUpdate#
rpc ResourceGroupUpdate(ResourceGroupUpdateRequest) returns ResourceGroupUpdateResponse
Update a resource group’s policy bundle or other mutable settings. If the resource group is active, the update is validated before it is persisted.
Policy bundles are scoped to the complete resource group, not individual resources.
UpdateGPUPolicies#
rpc UpdateGPUPolicies(UpdateGPUPoliciesRequest) returns UpdateGPUPoliciesResponse
UpdateGPUPolicies allows updating GPU policies without specifying the resource group. Because of this, a single call may end up updating multiple resource groups. If the resource groups are active, the changes are applied immediately.
This provides direct GPU power management without requiring knowledge of resource group assignments. It’s designed for telemetry-driven power optimization where external monitoring systems can adjust GPU power limits based on real-time performance data. A single call may affect multiple resource groups if GPUs span multiple groups.
StreamUpdateGPUPolicies#
rpc StreamUpdateGPUPolicies(UpdateGPUPoliciesRequest) returns StreamUpdateGPUPoliciesResponse
StreamUpdateGPUPolicies streams per-node results and aggregate progress while updating GPU policies without specifying the resource group.
AsyncOperationStatus#
rpc AsyncOperationStatus(ResourceGroupAsyncOperationStatusRequest) returns ResourceGroupAsyncOperationStatus
Queries the server about the status of an asynchronous operation started by one of the service APIs
Resource group operations (especially activation) can be performed asynchronously for better scalability. This API allows clients to check the progress and results of these asynchronous operations. The operation results are available until explicitly queried and forgotten.
Messages#
ActivateResourceGroupRequest#
ActivateResourceGroupRequest is used by ResourceGroupManagementService.ActivateResourceGroup.
Validates and applies power policies to all hardware resources in the resource group. Resource group must be inactive with resources added. After activation, workload can start.
Examples: dpsctl resource-group activate –resource-group “rg_$SLURM_JOB_ID” –sync # Synchronous activation dpsctl resource-group activate –resource-group “rg_$SLURM_JOB_ID” # Asynchronous activation dpsctl resource-group activate –resource-group “rg_$SLURM_JOB_ID” –partial-n-hosts 8 # Succeed if ≥8 hosts activate
Field |
Type |
Description |
|---|---|---|
group_name |
|
Name of resource group to activate. Must not be empty. |
strict |
|
If true, and if the given resource group cannot be activated because of power limits, do not try reducing the resource group policy. If false, the server will try a lower power policy if the given one fails. |
async |
|
Asynchronous activation strategy. If set, activation is asynchronous. If not set, activation is synchronous. |
partial_activation |
|
Options for partial activation with failure tolerance. Allows the resource group to be deemed active even if some hosts fail, as long as at least the specified number/fraction of hosts can be activated. When omitted, activation defaults to at least 80% of hosts, rounded up. |
allow_reprovision |
|
When activating a resource and this flag is set to true, a resource group that doesn’t have sufficient power to activate will lower the power policy of other resource groups in order to be able to activate. Setting this flag to false will result in failure to activate if there isn’t sufficient power to activate the resource group. |
ActivateResourceGroupResponse#
ActivateResourceGroupResponse is returned if resource group activation was successful.
Field |
Type |
Description |
|---|---|---|
node_statuses |
map |
Node statuses is a map where key is entity name and value is a struct with policy apply status and workload profile results |
status |
|
Operation status |
operation_id |
|
The operation id for asynchronous operations, if the status is “async” |
ActivateResourceGroupResponse.NodeStatusesEntry#
Field |
Type |
Description |
|---|---|---|
key |
|
none |
value |
|
none |
ComponentPolicyApplyResult#
ComponentPolicyApplyResult describes the result of applying an effective power policy to a node, CPU, or memory component.
Field |
Type |
Description |
|---|---|---|
ok |
|
Whether or not the operation was successful |
power_cap_watts |
|
The actual limit set in watts |
diag_msg |
|
Diagnostic message, if any |
DeactivateResourceGroupRequest#
DeactivateResourceGroupRequest is used to deactivate a resource group and remove applied policies from physical entities.
Removes power policies from hardware resources and returns them to topology defaults. Typically called automatically during resource group deletion. Resource group must be active. After deactivation, resources return to topology defaults.
Field |
Type |
Description |
|---|---|---|
group_name |
|
Name of resource group to deactivate. Must not be empty. |
wpps_disable_async_verification |
|
If true, workload power profile service (WPPS) operations will use synchronous verification instead of asynchronous. Default is false (asynchronous verification enabled). |
DeactivateResourceGroupResponse#
DeactivateResourceGroupResponse contains the resource group deactivation result.
Field |
Type |
Description |
|---|---|---|
status |
|
Operation status |
GPUPowerPolicyResponse#
GPUPowerPolicyResponse describes the result of applying a power policy to one GPU.
Field |
Type |
Description |
|---|---|---|
oneof _gpu_id.gpu_id |
optional |
The GPU id within the node (numeric index) |
ok |
|
Whether or not the operation was successful |
set_limit |
|
The actual power limit set, in watts (may differ from requested due to clamping) |
diag_msg |
|
Diagnostic msg, if any |
oneof _gpu_uuid.gpu_uuid |
optional |
Hardware-backed Redfish Processor UUID. |
GPUPowerPolicyResponses#
GPUPowerPolicyResponses wraps per-GPU power policy results with an overall status.
Field |
Type |
Description |
|---|---|---|
gpu_power_policy_result |
repeated |
none |
status |
|
Operation status |
GPUWorkloadProfileResponse#
GPUWorkloadProfileResponse describes the result of setting workload profile on one GPU
Field |
Type |
Description |
|---|---|---|
gpu_id |
|
The GPU id within the node |
ok |
|
Whether or not the operation was successful |
enforced_workload_profile_ids |
repeated |
The actual workload profiles set |
diag_msg |
|
Diagnostic msg, if any |
oneof _gpu_uuid.gpu_uuid |
optional |
Hardware-backed Redfish Processor UUID. |
GPUWorkloadProfileResponses#
GPUWorkloadProfileResponses describes workload profile update results across GPUs.
Field |
Type |
Description |
|---|---|---|
workload_profile_result |
repeated |
Operation status |
status |
|
Operation status |
NodeStatusResponse#
NodeStatusResponse combines the node status, workload profile results, and GPU power policy results
Field |
Type |
Description |
|---|---|---|
policy_apply_status |
|
Struct with an activation status and an actual policy |
workload_profile_results |
|
Result of the per-GPU workload profile operation |
gpu_power_policy_results |
|
Result of the per-GPU power policy operation |
node_policy_result |
|
Per-component effective-policy apply results (steal / activation). Omitted when that lever was not attempted. |
cpu_policy_result |
|
none |
memory_policy_result |
|
none |
ResourceGroupAddResourcesRequest#
ResourceGroupAddResourcesRequest is used by ResourceGroupManagementService.ResourceGroupAddResources.
Adds compute resources (nodes) to an existing resource group. For active resource groups, policies are applied immediately and power is reallocated. For inactive resource groups, this is a database-only operation.
Examples: dpsctl resource-group add –resource-group “rg_$SLURM_JOB_ID” –entities “node001,node002”
Field |
Type |
Description |
|---|---|---|
group_name |
|
Name of resource group to add resource entities to. Must not be empty. |
resource_names |
repeated |
Names of resources to add to the resource group. Must contain at least one unique item, and each entry must not be empty. |
strict |
|
If true, and if adding resources would exceed power limits, do not try reducing policies. If false, the server may retry the configured policy bundle at its effective floor when permitted. |
allow_reprovision |
|
If true, and adding resources would exceed power limits, allow reprovisioning other resource groups (power stealing) to satisfy the request. |
ResourceGroupAddResourcesResponse#
ResourceGroupAddResourcesResponse is returned if adding resources to a resource group was successful.
Field |
Type |
Description |
|---|---|---|
status |
|
Operation status |
ResourceGroupAsyncOperationStatus#
ResourceGroupAsyncOperationStatus returns the status of an asynchronous resource group operation. After it returns that the operation was completed, the results are forgotten.
Field |
Type |
Description |
|---|---|---|
operation_id |
|
Internal ID of the asynchronous operation |
completed |
|
Completed flag |
n_hosts |
|
Number of hosts in the request |
n_success |
|
Number of requests completed successfully |
n_failed |
|
Number of requests failed |
n_in_progress |
|
Number of requests in progress |
oneof status.activate |
|
Activate resource group status object |
oneof status.update |
|
Update resource group status object |
ResourceGroupAsyncOperationStatusRequest#
ResourceGroupAsyncOperationStatusRequest is used to query the status of an asynchronous operation.
Checks the progress and result of asynchronous resource group operations like activation or updates. Returns operation progress including success count, failure count, and completion status.
Field |
Type |
Description |
|---|---|---|
oneof id.operation_id |
|
Operation ID returned from async resource group operation |
oneof id.resource_group_info |
|
Resource group information |
ResourceGroupAsyncOperationStatusRequest.ResourceGroupStatusInfo#
Resource group information
Field |
Type |
Description |
|---|---|---|
resource_group_name |
|
Resource group name |
operation_type |
|
Operation type, i.e. “activate” or “update” |
ResourceGroupAsyncStrategy#
ResourceGroupAsyncStrategy specifies the asynchronous resource group activation strategy
Field |
Type |
Description |
|---|---|---|
oneof Options.nHosts |
|
Wait until the operation is complete for nHosts, then return. The operation continues asynchronously. |
oneof Options.fracHosts |
|
Wait until the operation is completed for the given fraction of hosts, then return. The operation continues asynchronously. Must be finite and between 0 and 1, inclusive. |
oneof Options.wait |
|
wait this long before returning. The operation continues asynchronously. If 0, the operation returns immediately. |
ResourceGroupCreateRequest#
ResourceGroupCreateRequest is used by the ResourceGroupManagementService.ResourceGroupCreate.
Creates a new, empty, and inactive resource group for managing power policies during workload execution. A resource group must be identified by a unique name, such as slurm job id. When created, the resource group does not have any resources and it is not active.
Examples: dpsctl resource-group create –resource-group “rg_$SLURM_JOB_ID” –external-id “$SLURM_JOB_ID” –policy-bundle “MaxQ”
Field |
Type |
Description |
|---|---|---|
external_id |
|
External ID (e.g. SLURM Job ID) - Unique identifier from external workload scheduler (e.g. SLURM_JOB_ID) |
group_name |
|
Unique resource group name - Human-readable identifier, must be unique (e.g. “rg_12345”, “job12345”). Must not be empty. |
oneof _policy_name.policy_name |
optional |
Legacy optional policy name retained for API compatibility. The policy must already exist in the topology. New clients should use policy_bundle. |
workload_profile_ids |
repeated |
Array of requested workload profile IDs associated with the resource group |
oneof _prs_enabled.prs_enabled |
optional |
Optional bool flag for the resource group to enable or disable prs dynamic power management default is enabled |
properties |
|
Properties of the resource group |
oneof _dpm_enable.dpm_enable |
optional |
Boolean flag to enable all dynamic power management, resource groups with |
oneof _shared_gpu_enable.shared_gpu_enable |
optional |
Enables shared-GPU behavior for this resource group. |
When enabled, DPS allows per-GPU cap updates as long as the total GPU power across the resource group does not increase beyond the currently provisioned total for the resource group. This setting can be used together with PRS when dynamic power management is enabled. default is true; set explicitly to false to opt out |
| priority | uint32 | Priority of the resource group for power stealing and giveback ordering. Lower values indicate higher priority. Default is 0. When stealing power, lower-priority resource groups are stolen from first. When giving back power, higher-priority resource groups receive power first. Must be no greater than 2147483647. |
| workload_group | bool | If set to true, this is a resource group for a workload, and it allocates its resources so no other workload group can allocate them. If false, this is simply group of resources, and the those resources may belong to zero or more resource groups, but at most one workload group. |
| parent_group | string | Name of a parent group, if any. A resource group’s lifetime is bound by its parent’s lifetime. Deactivating a resource group deactivates all its children as well. The policies of a parent resource group is computed before the policies of its children, so the child resource groups can override parent resource groups policies when allowed. For instance, a parent resource group may disable DPM which will result in all child resource groups to be DPM disabled by default, but child resource groups may enable DPM for themselves. |
| policy_bundle | string | Policy bundle configured for the complete resource group. Empty inherits global_policy_bundle; if that global setting is empty, no bundle is configured. |
ResourceGroupCreateResponse#
ResourceGroupCreateResponse is returned if the resource group is created successfully.
Field |
Type |
Description |
|---|---|---|
status |
|
Operation status |
ResourceGroupDeleteRequest#
ResourceGroupDeleteRequest is used by ResourceGroupManagementService.ResourceGroupDelete.
Deactivates and deletes a resource group, returning all hardware resources to their topology defaults. The resource group is automatically deactivated if active before deletion.
Field |
Type |
Description |
|---|---|---|
group_name |
|
Name of resource group to delete. Must not be empty. |
wpps_disable_async_verification |
|
If true, workload power profile service (WPPS) operations will use synchronous verification instead of asynchronous. Default is false (asynchronous verification enabled). |
ResourceGroupDeleteResponse#
ResourceGroupDeleteResponse is returned if the resource group deletion was successful.
Field |
Type |
Description |
|---|---|---|
status |
|
Operation status |
ResourceGroupListAllRequest#
ResourceGroupListAllRequest is used to list resource groups.
Queries all resource groups in the system with optional filtering by activation status. Used for monitoring, administration, and troubleshooting resource group state. Returns comprehensive information including policies, resources, and status for each resource group.
Field |
Type |
Description |
|---|---|---|
oneof _list_active_only.list_active_only |
optional |
Set to true to filter by active resource groups only |
ResourceGroupListAllResponse#
Response containing all (filtered) resource group information
Field |
Type |
Description |
|---|---|---|
status |
|
none |
resource_groups |
repeated |
List of all resource groups |
ResourceGroupListAllResponse.ResourceGroupInfo#
Field |
Type |
Description |
|---|---|---|
group_name |
|
Name of resource group |
external_id |
|
External ID of resource group |
activation_status |
|
Activation status of the resource group |
oneof _policy_name.policy_name |
optional |
Optional default policy for resource group |
resource_names |
repeated |
Names of resources in resource group |
oneof _workload_profile_ids.workload_profile_ids |
optional |
Resource group workload profile ids |
properties |
|
Properties of the resource group |
oneof _prs_enabled.prs_enabled |
optional |
Optional bool flag for the resource group to enable or disable prs dynamic power management default is enabled |
dpm_enable |
|
Boolean flag for enabling dynamic power management for the resource group default is true (dpm enabled) |
shared_gpu_enable |
|
Enables shared-GPU behavior for this resource group. |
oneof _priority.priority |
optional |
Priority of the resource group for power stealing and giveback ordering. Marked optional so a value of 0 is always emitted over the wire instead of being dropped as the proto3 scalar default. |
policy_bundle |
|
Policy bundle configured for the complete resource group. Empty means no bundle. |
ResourceGroupPartialActivation#
ResourceGroupPartialActivation specifies the parameters for acceptable level of failure during host configuration
Field |
Type |
Description |
|---|---|---|
oneof Options.atleast_n_hosts |
|
At least this many hosts must be activated for the resource group activation to be successful |
oneof Options.atleast_frac_hosts |
|
At least this fraction of hosts must be activated for the resource group activation to be successful. Must be finite and between 0 and 1, inclusive. |
host_activation_timeout |
|
Host activation timeout. If a host is not accessible after this duration, host is deemed inaccessible |
ResourceGroupRemoveResourcesRequest#
ResourceGroupRemoveResourcesRequest is used by ResourceGroupManagementService.ResourceGroupRemoveResources.
Removes compute resources (nodes) from a resource group. For active resource groups, policies are reverted to topology defaults and power is reallocated. For inactive resource groups, this is a database-only operation.
Field |
Type |
Description |
|---|---|---|
group_name |
|
Name of the resource group to remove resource entities from. Must not be empty. |
resource_names |
repeated |
Names of resource entities to remove from the resource group. Must contain at least one item, and each entry must not be empty. |
ResourceGroupRemoveResourcesResponse#
ResourceGroupRemoveResourcesResponse is returned if entity removal was successful.
Field |
Type |
Description |
|---|---|---|
status |
|
Operation status |
ResourceGroupUpdateRequest#
ResourceGroupUpdateRequest is used by ResourceGroupManagementService.ResourceGroupUpdate to modify the resource group policy bundle and/or workload profiles.
Updates the optional policy bundle and optionally workload profiles for the resource group. Can be used on active or inactive resource groups. If resource group is active, changes are applied immediately to hardware.
Examples: dpsctl resource-group update –resource-group “rg_$SLURM_JOB_ID” –policy-bundle “bundle-name” –sync # Synchronous update
Field |
Type |
Description |
|---|---|---|
group_name |
|
Name of resource group to update. Must not be empty. |
oneof _policy_bundle.policy_bundle |
optional |
Optional policy bundle update for the complete resource group. Omitted preserves the current bundle configuration; an explicitly empty value inherits global_policy_bundle, or resolves to no bundle when that global setting is empty. |
strict |
|
If the resource group is already active and if strict is true, and if the given resource group cannot be activated because of power limits, do not try reducing the resource group policy. If strict is false, the server will try a lower power policy if the given one fails. |
workload_profile_ids |
|
Array of new requested workload profile IDs |
async |
|
Asynchronous activation strategy. If set, activation is asynchronous. If not set, activation is synchronous. |
partial_activation |
|
Options for partial activation with failure tolerance |
wpps_disable_async_verification |
|
If true, workload power profile service (WPPS) operations will use synchronous verification instead of asynchronous. Default is false (asynchronous verification enabled). |
oneof _priority.priority |
optional |
Optional priority update. When set, updates the resource group’s priority value. Must be no greater than 2147483647. |
ResourceGroupUpdateResponse#
ResourceGroupUpdateResponse is returned if resource group update was successful.
Field |
Type |
Description |
|---|---|---|
node_statuses |
map |
Node statuses is a map where key is entity name and value is a struct with policy apply status and workload profile results |
status |
|
Operation status |
operation_id |
|
The operation id for asynchronous operations, if the status is “async” |
ResourceGroupUpdateResponse.NodeStatusesEntry#
Field |
Type |
Description |
|---|---|---|
key |
|
none |
value |
|
none |
StreamUpdateGPUPoliciesResponse#
StreamUpdateGPUPoliciesResponse describes one streamed GPU policy update message.
Field |
Type |
Description |
|---|---|---|
task_id |
|
Internal task id for the update operation. |
node_name |
|
Node name for this streamed update message. |
node_status_response |
|
Per-node policy and GPU policy update result. |
gpu_policy_update_status |
|
Aggregate operation progress after this update. |
UpdateGPUPoliciesRequest#
UpdateGPUPoliciesRequest is used by ResourceGroupManagementService.UpdateGPUPolicies to update GPU power policies without a reference to the resource group.
Updates individual GPU power limits based on real-time telemetry data from external monitoring systems. Used for dynamic power optimization during workload execution without knowing resource group details. All GPUs in a node must be specified or the update fails. Updates node-level policy to satisfy aggregate GPU requirements. Each GPUPolicy selects its GPU by gpu_id or gpu_uuid. When both are present, they must identify the same GPU. DPS resolves UUIDs from its in-memory hardware identity snapshot and continues to use numeric IDs for actuation.
Field |
Type |
Description |
|---|---|---|
node_gpu_policies |
map |
A map of node name -> GPU Policies. Must contain at least one entry. |
UpdateGPUPoliciesRequest.NodeGpuPoliciesEntry#
Field |
Type |
Description |
|---|---|---|
key |
|
none |
value |
|
none |
UpdateGPUPoliciesResponse#
UpdateGPUPoliciesResponse describes the result of each update operation.
Field |
Type |
Description |
|---|---|---|
results |
repeated |
Results of the per-GPU update operation. |
status |
|
Operation status. |
UpdateGPUPoliciesResponse.Result#
Result describes the result of setting the power limit of one GPU.
Field |
Type |
Description |
|---|---|---|
resource_name |
|
The node name containing this GPU. |
oneof _gpu_id.gpu_id |
optional |
The GPU id within the node. |
ok |
|
Whether or not the operation was successful. |
set_limit |
|
The actual limit set. |
diag_msg |
|
Diagnostic msg, if any. |
oneof _gpu_uuid.gpu_uuid |
optional |
Hardware-backed Redfish Processor UUID. |
UpdateGPUPoliciesStatus#
UpdateGPUPoliciesStatus describes aggregate progress for a streamed GPU policy update.
Field |
Type |
Description |
|---|---|---|
completed |
|
Will be true on the last message of the stream. |
status |
|
If completed, operation status. |
n_hosts |
|
Number of nodes in the request. |
n_success |
|
Number of node requests completed successfully. |
n_failed |
|
Number of node requests failed. |
n_in_progress |
|
Number of node requests in progress. |
n_gpus |
|
Number of GPU policy entries in the request. |
n_gpus_success |
|
Number of GPU policy entries completed successfully. |
n_gpus_failed |
|
Number of GPU policy entries failed. |
n_gpus_in_progress |
|
Number of GPU policy entries in progress. |
WorkloadProfileIDs#
WorkloadProfileIDs is a wrapper around an array of workload profile IDs
Field |
Type |
Description |
|---|---|---|
ids |
repeated |
none |
Scalar Value Types#
.proto Type |
Notes |
C++ Type |
Java Type |
Python Type |
|---|---|---|---|---|
double |
double |
double |
float |
|
float |
float |
float |
float |
|
int32 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
int |
int64 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
long |
int/long |
uint32 |
Uses variable-length encoding. |
uint32 |
int |
int/long |
uint64 |
Uses variable-length encoding. |
uint64 |
long |
int/long |
sint32 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
int |
sint64 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
long |
int/long |
fixed32 |
Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
uint32 |
int |
int |
fixed64 |
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
uint64 |
long |
int/long |
sfixed32 |
Always four bytes. |
int32 |
int |
int |
sfixed64 |
Always eight bytes. |
int64 |
long |
int/long |
bool |
bool |
boolean |
boolean |
|
string |
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
String |
str/unicode |
bytes |
May contain any arbitrary sequence of bytes. |
string |
ByteString |
str |