mirror of
https://github.com/wassname/ray.git
synced 2026-07-17 11:32:33 +08:00
[Placement Group] Support Placement Group state table. (#10090)
* Done. * Addressed code review. * Linting. * Fix lint. * Fix lint. * Fix a test. * Lint. * Add a lint sleep to test. * Fix the lint issue. * Fixed doc build error.
This commit is contained in:
@@ -219,6 +219,47 @@ def test_placement_group_hang(ray_start_cluster):
|
||||
assert "CPU_group_" in list(resources.keys())[0], resources
|
||||
|
||||
|
||||
def test_placement_group_table(ray_start_cluster):
|
||||
@ray.remote(num_cpus=2)
|
||||
class Actor(object):
|
||||
def __init__(self):
|
||||
self.n = 0
|
||||
|
||||
def value(self):
|
||||
return self.n
|
||||
|
||||
cluster = ray_start_cluster
|
||||
num_nodes = 2
|
||||
for _ in range(num_nodes):
|
||||
cluster.add_node(num_cpus=4)
|
||||
ray.init(address=cluster.address)
|
||||
|
||||
# Originally placement group creation should be pending because
|
||||
# there are no resources.
|
||||
name = "name"
|
||||
strategy = "PACK"
|
||||
bundles = [{"CPU": 2, "GPU": 1}, {"CPU": 2}]
|
||||
placement_group_id = ray.experimental.placement_group(
|
||||
name=name, strategy=strategy, bundles=bundles)
|
||||
result = ray.experimental.placement_group_table(placement_group_id)
|
||||
assert result["name"] == name
|
||||
assert result["strategy"] == strategy
|
||||
for i in range(len(bundles)):
|
||||
assert bundles[i] == result["bundles"][i]
|
||||
assert result["state"] == "PENDING"
|
||||
|
||||
# Now the placement group should be scheduled.
|
||||
cluster.add_node(num_cpus=5, num_gpus=1)
|
||||
cluster.wait_for_nodes()
|
||||
actor_1 = Actor.options(
|
||||
placement_group_id=placement_group_id,
|
||||
placement_group_bundle_index=0).remote()
|
||||
ray.get(actor_1.value.remote())
|
||||
|
||||
result = ray.experimental.placement_group_table(placement_group_id)
|
||||
assert result["state"] == "ALIVE"
|
||||
|
||||
|
||||
def test_cuda_visible_devices(ray_start_cluster):
|
||||
@ray.remote(num_gpus=1)
|
||||
def f():
|
||||
|
||||
Reference in New Issue
Block a user