mirror of
https://github.com/wassname/ray.git
synced 2026-06-28 21:29:53 +08:00
8e8e123777
## What do these changes do? Previously, Java worker configuration is complicated, because it requires setting environment variables as well as command-line arguments. This PR aims to simplify Java worker's configuration. 1) Configuration management is now migrated to [lightbend config](https://github.com/lightbend/config), thus doesn't require setting environment variables. 2) Many unused config items are removed. 3) Provide a simple `example.conf` file, so users can get started quickly. 4) All possible options and their default values are declared and documented in `ray.default.conf` file. This PR also simplifies and refines the following code: 1) The process of `Ray.init()`. 2) `RunManager`. 3) `WorkerContext`. ### How to use this configuration? 1. Copy `example.conf` into your classpath and rename it to `ray.conf`. 2. Modify/add your configuration items. The all items are declared in `ray.default.conf`. 3. You can also set the items in java system prosperities. Note: configuration is read in this priority: System properties > `ray.conf` > `ray.default.conf` ## Related issue number N/A
83 lines
2.4 KiB
ReStructuredText
83 lines
2.4 KiB
ReStructuredText
Quick start
|
|
===========
|
|
|
|
Configuration
|
|
-------------
|
|
Ray will read your configurations in the following order:
|
|
|
|
* Java system properties: e.g., ``-Dray.home=/path/to/ray``.
|
|
* A ``ray.conf`` file in the classpath: `example <https://github.com/ray-project/ray/java/example.conf>`_.
|
|
|
|
For all available config items and default values, see `this file <https://github.com/ray-project/ray/java/runtime/src/main/resources/ray.default.conf>`_.
|
|
|
|
Starting Ray
|
|
------------
|
|
|
|
.. code:: java
|
|
|
|
Ray.init();
|
|
|
|
Read and write remote objects
|
|
-----------------------------
|
|
|
|
Each remote object is considered a ``RayObject<T>`` where ``T`` is the
|
|
type for this object. You can use ``Ray.put`` and ``RayObject<T>.get``
|
|
to write and read the objects.
|
|
|
|
.. code:: java
|
|
|
|
Integer x = 1;
|
|
RayObject<Integer> obj = Ray.put(x);
|
|
Integer x1 = obj.get();
|
|
assert (x.equals(x1));
|
|
|
|
Remote functions
|
|
----------------
|
|
|
|
Here is an ordinary java code piece for composing
|
|
``hello world example``.
|
|
|
|
.. code:: java
|
|
|
|
public class ExampleClass {
|
|
public static void main(String[] args) {
|
|
String str1 = add("hello", "world");
|
|
String str = add(str1, "example");
|
|
System.out.println(str);
|
|
}
|
|
public static String add(String a, String b) {
|
|
return a + " " + b;
|
|
}
|
|
}
|
|
|
|
We use ``@RayRemote`` to indicate that a function is remote, and use
|
|
``Ray.call`` to invoke it. The result from the latter is a
|
|
``RayObject<R>`` where ``R`` is the return type of the target function.
|
|
The following shows the changed example with ``add`` annotated, and
|
|
correspondent calls executed on remote machines.
|
|
|
|
.. code:: java
|
|
|
|
public class ExampleClass {
|
|
public static void main(String[] args) {
|
|
Ray.init();
|
|
RayObject<String> objStr1 = Ray.call(ExampleClass::add, "hello", "world");
|
|
RayObject<String> objStr2 = Ray.call(ExampleClass::add, objStr1, "example");
|
|
String str = objStr2.get();
|
|
System.out.println(str);
|
|
}
|
|
|
|
@RayRemote
|
|
public static String add(String a, String b) {
|
|
return a + " " + b;
|
|
}
|
|
}
|
|
|
|
More information
|
|
================
|
|
|
|
- `Installation <https://github.com/ray-project/ray/tree/master/java/doc/installation.rst>`_
|
|
- `API document <https://github.com/ray-project/ray/tree/master/java/doc/api.rst>`_
|
|
- `Tutorial <https://github.com/ray-project/ray/tree/master/java/tutorial>`_
|
|
|