Skip to content

Commit

Permalink
Enable Ray client server by default (#13350)
Browse files Browse the repository at this point in the history
* update

* fix

* fix test

* update
  • Loading branch information
ericl authored Jan 13, 2021
1 parent 8e0a2f6 commit 912d0cb
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 30 deletions.
37 changes: 10 additions & 27 deletions doc/source/ray-client.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ Ray Client
Basic usage
===========

While in beta, the server is available as an executable module. To start the server, run
The Ray client server is automatically started on port ``10001`` when you use ``ray start --head`` or Ray in an autoscaling cluster. The port can be changed by specifying --ray-client-server-port in the ``ray start`` command.

To start the server manually, you can run:

``python -m ray.util.client.server [--host host_ip] [--port port] [--redis-address address] [--redis-password password]``

This runs ``ray.init()`` with default options and exposes the client gRPC port at ``host_ip:port`` (by default, ``0.0.0.0:50051``). Providing ``redis-address`` and ``redis-password`` will be passed into ``ray.init()`` when the server starts, allowing connection to an existing Ray cluster, as per the `cluster setup <cluster/index.html>`_ instructions.
This runs ``ray.init()`` with default options and exposes the client gRPC port at ``host_ip:port`` (by default, ``0.0.0.0:10001``). Providing ``redis-address`` and ``redis-password`` will be passed into ``ray.init()`` when the server starts, allowing connection to an existing Ray cluster, as per the `cluster setup <cluster/index.html>`_ instructions.

From here, another Ray script can access that server from a networked machine with ``ray.util.connect()``

Expand All @@ -23,7 +25,7 @@ From here, another Ray script can access that server from a networked machine wi
import ray
import ray.util
ray.util.connect("0.0.0.0:50051") # replace with the appropriate host and port
ray.util.connect("<head_node_host>:10001") # replace with the appropriate host and port
# Normal Ray code follows
@ray.remote
Expand All @@ -32,13 +34,12 @@ From here, another Ray script can access that server from a networked machine wi
do_work.remote(2)
#....
When the client disconnects, any object or actor references held by the server on behalf of the client are dropped, as if directly disconnecting from the cluster.

When the client disconnects, any object or actor references held by the server on behalf of the client are dropped, as if directly disconnecting from the cluster


===================
``RAY_CLIENT_MODE``
===================
============
Known issues
============

Because Ray client mode affects the behavior of the Ray API, larger scripts or libraries imported before ``ray.util.connect()`` may not realize they're in client mode. This feature is being tracked with `issue #13272 <https://github.com/ray-project/ray/issues/13272>`_ but the workaround here is provided for beta users.

Expand All @@ -49,21 +50,3 @@ Therefore, an environment variable is also available to force a Ray program into
.. code-block:: bash
RAY_CLIENT_MODE=1 python my_ray_program.py
===================================
Programatically creating the server
===================================

For larger use-cases, it may be desirable to connect remote Ray clients to an existing Ray environment. The server can be started separately via

.. code-block:: python
from ray.util.client.server import serve
server = serve("0.0.0.0:50051")
# Server does some work
# ...
# Time to clean up
server.stop(0)
2 changes: 1 addition & 1 deletion python/ray/scripts/scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ def debug(address):
"--ray-client-server-port",
required=False,
type=int,
default=None,
default=10001,
help="the port number the ray client server will bind on. If not set, "
"the ray client server will not be started.")
@click.option(
Expand Down
4 changes: 2 additions & 2 deletions python/ray/tests/test_job.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def __init__(self):
assert len(actor_table) == 1

job_table = ray.jobs()
assert len(job_table) == 2
assert len(job_table) == 3 # dash, ray client server

# Kill the driver process.
p.kill()
Expand Down Expand Up @@ -79,7 +79,7 @@ def value(self):
assert len(actor_table) == 1

job_table = ray.jobs()
assert len(job_table) == 2
assert len(job_table) == 3 # dash, ray client server

# Kill the driver process.
p.kill()
Expand Down

0 comments on commit 912d0cb

Please sign in to comment.