mirror of
https://github.com/wassname/ray.git
synced 2026-07-25 13:30:52 +08:00
[Placement group] Check if placement group bundle index is valid (#10194)
* add part code * rebase master * add java testcase * fix review comments * fix lint error * rebase master * fix lint error Co-authored-by: 灵洵 <fengbin.ffb@antfin.com>
This commit is contained in:
@@ -1,8 +1,15 @@
|
||||
from typing import (List, Dict)
|
||||
|
||||
import ray
|
||||
from ray._raylet import (
|
||||
PlacementGroupID, )
|
||||
|
||||
|
||||
class PlacementGroup:
|
||||
"""A handle to a placement group.
|
||||
"""
|
||||
|
||||
def __init__(self, id, bundle_count):
|
||||
self.id = id
|
||||
self.bundle_count = bundle_count
|
||||
|
||||
|
||||
def placement_group(bundles: List[Dict[str, float]],
|
||||
@@ -33,19 +40,32 @@ def placement_group(bundles: List[Dict[str, float]],
|
||||
placement_group_id = worker.core_worker.create_placement_group(
|
||||
name, bundles, strategy)
|
||||
|
||||
return placement_group_id
|
||||
return PlacementGroup(placement_group_id, len(bundles))
|
||||
|
||||
|
||||
def remove_placement_group(placement_group_id: PlacementGroupID):
|
||||
assert type(placement_group_id) == PlacementGroupID
|
||||
def remove_placement_group(placement_group):
|
||||
assert placement_group is not None
|
||||
worker = ray.worker.global_worker
|
||||
worker.check_connected()
|
||||
|
||||
worker.core_worker.remove_placement_group(placement_group_id)
|
||||
worker.core_worker.remove_placement_group(placement_group.id)
|
||||
|
||||
|
||||
def placement_group_table(placement_group_id):
|
||||
assert placement_group_id is not None
|
||||
def placement_group_table(placement_group):
|
||||
assert placement_group is not None
|
||||
worker = ray.worker.global_worker
|
||||
worker.check_connected()
|
||||
return ray.state.state.placement_group_table(placement_group_id)
|
||||
return ray.state.state.placement_group_table(placement_group.id)
|
||||
|
||||
|
||||
def check_placement_group_index(placement_group, bundle_index):
|
||||
assert placement_group is not None
|
||||
if placement_group.id.is_nil():
|
||||
if bundle_index != -1:
|
||||
raise ValueError("If placement group is not set, "
|
||||
"the value of bundle index must be -1.")
|
||||
elif bundle_index >= placement_group.bundle_count \
|
||||
or bundle_index < -1:
|
||||
raise ValueError(f"placement group bundle index {bundle_index} "
|
||||
f"is invalid. Valid placement group indexes: "
|
||||
f"0-{placement_group.bundle_count}")
|
||||
|
||||
Reference in New Issue
Block a user