mirror of
https://github.com/wassname/ray.git
synced 2026-06-29 06:33:06 +08:00
Set _remote() function args and kwargs as optional (#4305)
This commit is contained in:
committed by
Robert Nishihara
parent
ba3fe04629
commit
5adb4a6941
@@ -827,51 +827,63 @@ def test_defining_remote_functions(shutdown_only):
|
||||
assert ray.get(k2.remote(1)) == 2
|
||||
assert ray.get(m.remote(1)) == 2
|
||||
|
||||
def test_submit_api(shutdown_only):
|
||||
ray.init(num_cpus=1, num_gpus=1, resources={"Custom": 1})
|
||||
|
||||
@ray.remote
|
||||
def f(n):
|
||||
return list(range(n))
|
||||
def test_submit_api(shutdown_only):
|
||||
ray.init(num_cpus=1, num_gpus=1, resources={"Custom": 1})
|
||||
|
||||
@ray.remote
|
||||
def g():
|
||||
@ray.remote
|
||||
def f(n):
|
||||
return list(range(n))
|
||||
|
||||
@ray.remote
|
||||
def g():
|
||||
return ray.get_gpu_ids()
|
||||
|
||||
assert f._remote([0], num_return_vals=0) is None
|
||||
id1 = f._remote(args=[1], num_return_vals=1)
|
||||
assert ray.get(id1) == [0]
|
||||
id1, id2 = f._remote(args=[2], num_return_vals=2)
|
||||
assert ray.get([id1, id2]) == [0, 1]
|
||||
id1, id2, id3 = f._remote(args=[3], num_return_vals=3)
|
||||
assert ray.get([id1, id2, id3]) == [0, 1, 2]
|
||||
assert ray.get(
|
||||
g._remote(args=[], num_cpus=1, num_gpus=1,
|
||||
resources={"Custom": 1})) == [0]
|
||||
infeasible_id = g._remote(args=[], resources={"NonexistentCustom": 1})
|
||||
assert ray.get(g._remote()) == []
|
||||
ready_ids, remaining_ids = ray.wait([infeasible_id], timeout=0.05)
|
||||
assert len(ready_ids) == 0
|
||||
assert len(remaining_ids) == 1
|
||||
|
||||
@ray.remote
|
||||
class Actor(object):
|
||||
def __init__(self, x, y=0):
|
||||
self.x = x
|
||||
self.y = y
|
||||
|
||||
def method(self, a, b=0):
|
||||
return self.x, self.y, a, b
|
||||
|
||||
def gpu_ids(self):
|
||||
return ray.get_gpu_ids()
|
||||
|
||||
assert f._remote([0], num_return_vals=0) is None
|
||||
id1 = f._remote(args=[1], num_return_vals=1)
|
||||
assert ray.get(id1) == [0]
|
||||
id1, id2 = f._remote(args=[2], num_return_vals=2)
|
||||
assert ray.get([id1, id2]) == [0, 1]
|
||||
id1, id2, id3 = f._remote(args=[3], num_return_vals=3)
|
||||
assert ray.get([id1, id2, id3]) == [0, 1, 2]
|
||||
assert ray.get(
|
||||
g._remote(
|
||||
args=[], num_cpus=1, num_gpus=1,
|
||||
resources={"Custom": 1})) == [0]
|
||||
infeasible_id = g._remote(args=[], resources={"NonexistentCustom": 1})
|
||||
ready_ids, remaining_ids = ray.wait([infeasible_id], timeout=0.05)
|
||||
assert len(ready_ids) == 0
|
||||
assert len(remaining_ids) == 1
|
||||
@ray.remote
|
||||
class Actor2(object):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@ray.remote
|
||||
class Actor(object):
|
||||
def __init__(self, x, y=0):
|
||||
self.x = x
|
||||
self.y = y
|
||||
def method(self):
|
||||
pass
|
||||
|
||||
def method(self, a, b=0):
|
||||
return self.x, self.y, a, b
|
||||
a = Actor._remote(
|
||||
args=[0], kwargs={"y": 1}, num_gpus=1, resources={"Custom": 1})
|
||||
|
||||
def gpu_ids(self):
|
||||
return ray.get_gpu_ids()
|
||||
a2 = Actor2._remote()
|
||||
ray.get(a2.method._remote())
|
||||
|
||||
a = Actor._remote(
|
||||
args=[0], kwargs={"y": 1}, num_gpus=1, resources={"Custom": 1})
|
||||
|
||||
id1, id2, id3, id4 = a.method._remote(
|
||||
args=["test"], kwargs={"b": 2}, num_return_vals=4)
|
||||
assert ray.get([id1, id2, id3, id4]) == [0, 1, "test", 2]
|
||||
id1, id2, id3, id4 = a.method._remote(
|
||||
args=["test"], kwargs={"b": 2}, num_return_vals=4)
|
||||
assert ray.get([id1, id2, id3, id4]) == [0, 1, "test", 2]
|
||||
|
||||
|
||||
def test_get_multiple(shutdown_only):
|
||||
|
||||
Reference in New Issue
Block a user