Ejemplo n.º 1
0
def get_function_descriptor_for_actor_method(
        language: str, actor_creation_function_descriptor, method_name: str,
        signature: str):
    """Get function descriptor for cross language actor method call.

    Args:
        language: Target language.
        actor_creation_function_descriptor:
            The function signature for actor creation.
        method_name: The name of actor method.
        signature: The signature for the actor method. When calling Java from Python,
            it should be string in the form of "{length_of_args}".

    Returns:
        Function descriptor for cross language actor method call.
    """
    if language == Language.JAVA:
        return JavaFunctionDescriptor(
            actor_creation_function_descriptor.class_name,
            method_name,
            signature,
        )
    elif language == Language.CPP:
        return CppFunctionDescriptor(
            method_name,
            "PYTHON",
            actor_creation_function_descriptor.class_name,
        )
    else:
        raise NotImplementedError("Cross language remote actor method "
                                  f"not support language {language}")
Ejemplo n.º 2
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,
Ejemplo n.º 3
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"),
        {},
    )
Ejemplo n.º 4
0
def cpp_actor_class(create_function_name: str, class_name: str):
    """Define a Cpp actor class.

    Args:
        create_function_name: Create cpp class function name.
        class_name: Cpp class name.
    """
    from ray.actor import ActorClass

    print("create func=", create_function_name, "class_name=", class_name)
    return ActorClass._ray_from_function_descriptor(
        Language.CPP,
        CppFunctionDescriptor(create_function_name, "PYTHON", class_name),
        {},
    )
Ejemplo n.º 5
0
def cpp_actor_class(create_function_name, class_name):
    """Define a Cpp actor class.

    Args:
        create_function_name (str): Create cpp class function name.
        class_name (str): Cpp class name.
    """
    from ray.actor import ActorClass

    print("create func=", create_function_name, "class_name=", class_name)
    return ActorClass._ray_from_function_descriptor(
        Language.CPP,
        CppFunctionDescriptor(create_function_name, "PYTHON", class_name),
        max_restarts=0,
        max_task_retries=0,
        num_cpus=None,
        num_gpus=None,
        memory=None,
        object_store_memory=None,
        resources=None,
        accelerator_type=None,
        runtime_env=None,
    )