Beispiel #1
0
    def _apply_workflow_options(f: RemoteFunction):
        if not isinstance(f, RemoteFunction):
            raise ValueError("Only apply 'workflow.options' to Ray remote functions.")
        from ray.workflow.common import WORKFLOW_OPTIONS

        if "_metadata" not in f._default_options:
            f._default_options["_metadata"] = {}
        f._default_options["_metadata"][WORKFLOW_OPTIONS] = workflow_options
        return f
Beispiel #2
0
def java_function(class_name, function_name):
    """Define a Java function.

    Args:
        class_name (str): Java class name.
        function_name (str): Java function name.
    """
    from ray.remote_function import RemoteFunction
    return RemoteFunction(
        Language.JAVA,
        lambda *args, **kwargs: None,
        JavaFunctionDescriptor(class_name, function_name, ""),
        None,  # num_cpus,
        None,  # num_gpus,
        None,  # memory,
        None,  # object_store_memory,
        None,  # resources,
        None,  # accelerator_type,
        None,  # num_returns,
        None,  # max_calls,
        None,  # max_retries
        placement_group=None,
        # TODO(ekl) set default to -1 once we support -1 as "any index"
        placement_group_bundle_index=0,
        placement_group_capture_child_tasks=None)
Beispiel #3
0
def spread(f: RemoteFunction, *args, **kwargs):
    with spread_to_all_nodes(f) as (nodes, pg):
        return [
            f.options(placement_group=pg,
                      placement_group_bundle_index=index).remote(
                          *args, **kwargs) for index in range(nodes)
        ]
Beispiel #4
0
def java_function(class_name, function_name):
    """Define a Java function.

    Args:
        class_name (str): Java class name.
        function_name (str): Java function name.
    """
    from ray.remote_function import RemoteFunction
    return RemoteFunction(
        Language.JAVA,
        lambda *args, **kwargs: None,
        JavaFunctionDescriptor(class_name, function_name, ""),
        None,  # num_cpus,
        None,  # num_gpus,
        None,  # memory,
        None,  # object_store_memory,
        None,  # resources,
        None,  # accelerator_type,
        None,  # num_returns,
        None,  # max_calls,
        None,  # max_retries,
        None,  # retry_exceptions,
        None,  # runtime_env,
        None,  # placement_group,
        None)  # scheduling_strategy,
Beispiel #5
0
def cpp_function(function_name):
    """Define a Cpp function.

    Args:
        function_name (str): Cpp function name.
    """
    from ray.remote_function import RemoteFunction

    return RemoteFunction(
        Language.CPP,
        lambda *args, **kwargs: None,
        CppFunctionDescriptor(function_name, "PYTHON"),
        None,  # num_cpus,
        None,  # num_gpus,
        None,  # memory,
        None,  # object_store_memory,
        None,  # resources,
        None,  # accelerator_type,
        None,  # num_returns,
        None,  # max_calls,
        None,  # max_retries,
        None,  # retry_exceptions,
        None,  # runtime_env,
        None,  # placement_group,
        None,
    )  # scheduling_strategy,
Beispiel #6
0
def update_workflow_options(f: RemoteFunction,
                            **workflow_options) -> RemoteFunction:
    new_metadata = f._default_options.get("_metadata", {}).copy()
    # copy again because the origina copy is shallow copy
    new_workflow_options = new_metadata.get(WORKFLOW_OPTIONS, {}).copy()
    new_workflow_options.update(**workflow_options)
    new_metadata[WORKFLOW_OPTIONS] = new_workflow_options
    return f.options(_metadata=new_metadata)
Beispiel #7
0
def cpp_function(function_name: str):
    """Define a Cpp function.

    Args:
        function_name: Cpp function name.
    """
    from ray.remote_function import RemoteFunction

    return RemoteFunction(
        Language.CPP,
        lambda *args, **kwargs: None,
        CppFunctionDescriptor(function_name, "PYTHON"),
        {},
    )
Beispiel #8
0
def java_function(class_name, function_name):
    from ray.remote_function import RemoteFunction
    return RemoteFunction(
        Language.JAVA,
        lambda *args, **kwargs: None,
        JavaFunctionDescriptor(class_name, function_name, ""),
        None,  # num_cpus,
        None,  # num_gpus,
        None,  # memory,
        None,  # object_store_memory,
        None,  # resources,
        None,  # num_return_vals,
        None,  # max_calls,
        None)  # max_retries)
Beispiel #9
0
def java_function(class_name: str, function_name: str):
    """Define a Java function.

    Args:
        class_name: Java class name.
        function_name: Java function name.
    """
    from ray.remote_function import RemoteFunction

    return RemoteFunction(
        Language.JAVA,
        lambda *args, **kwargs: None,
        JavaFunctionDescriptor(class_name, function_name, ""),
        {},
    )
Beispiel #10
0
def java_function(class_name, function_name):
    from ray.remote_function import RemoteFunction
    return RemoteFunction(
        Language.JAVA,
        lambda *args, **kwargs: None,
        JavaFunctionDescriptor(class_name, function_name, ""),
        None,  # num_cpus,
        None,  # num_gpus,
        None,  # memory,
        None,  # object_store_memory,
        None,  # resources,
        None,  # num_return_vals,
        None,  # max_calls,
        None,  # max_retries
        placement_group=None,
        # TODO(ekl) set default to -1 once we support -1 as "any index"
        placement_group_bundle_index=0)