Minimal implementation of direct task calls (#6075)

This commit is contained in:
Eric Liang
2019-11-12 11:45:28 -08:00
committed by GitHub
parent 35d177f459
commit f3f86385d6
49 changed files with 1358 additions and 384 deletions
+9 -3
View File
@@ -134,6 +134,7 @@ class RemoteFunction(object):
args=None,
kwargs=None,
num_return_vals=None,
is_direct_call=None,
num_cpus=None,
num_gpus=None,
memory=None,
@@ -155,6 +156,8 @@ class RemoteFunction(object):
if num_return_vals is None:
num_return_vals = self._num_return_vals
if is_direct_call is None:
is_direct_call = False
resources = ray.utils.resources_from_resource_arguments(
self._num_cpus, self._num_gpus, self._memory,
@@ -162,8 +165,11 @@ class RemoteFunction(object):
memory, object_store_memory, resources)
def invocation(args, kwargs):
list_args = ray.signature.flatten_args(self._function_signature,
args, kwargs)
if not args and not kwargs and not self._function_signature:
list_args = []
else:
list_args = ray.signature.flatten_args(
self._function_signature, args, kwargs)
if worker.mode == ray.worker.LOCAL_MODE:
object_ids = worker.local_mode_manager.execute(
@@ -172,7 +178,7 @@ class RemoteFunction(object):
else:
object_ids = worker.core_worker.submit_task(
self._function_descriptor_list, list_args, num_return_vals,
resources)
is_direct_call, resources)
if len(object_ids) == 1:
return object_ids[0]