Revert "Enable Ray client server by default (#13350)" (#13429)

This reverts commit 912d0cbbf9.
This commit is contained in:
Amog Kamsetty 2021-01-13 21:28:54 -08:00 committed by GitHub
parent 8697d67791
commit 560299972c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 13 deletions

View file

@ -10,13 +10,11 @@ Ray Client
Basic usage
===========
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:
While in beta, the server is available as an executable module. To start the server, 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: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.
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.
From here, another Ray script can access that server from a networked machine with ``ray.util.connect()``
@ -25,7 +23,7 @@ From here, another Ray script can access that server from a networked machine wi
import ray
import ray.util
ray.util.connect("<head_node_host>:10001") # replace with the appropriate host and port
ray.util.connect("0.0.0.0:50051") # replace with the appropriate host and port
# Normal Ray code follows
@ray.remote
@ -35,11 +33,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
============
Known issues
============
===================
``RAY_CLIENT_MODE``
===================
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.
@ -50,3 +49,21 @@ 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)

View file

@ -282,7 +282,7 @@ def debug(address):
"--ray-client-server-port",
required=False,
type=int,
default=10001,
default=None,
help="the port number the ray client server will bind on. If not set, "
"the ray client server will not be started.")
@click.option(

View file

@ -33,7 +33,7 @@ _ = Actor.remote()
assert len(actor_table) == 1
job_table = ray.jobs()
assert len(job_table) == 3 # dash, ray client server
assert len(job_table) == 2
# Kill the driver process.
p.kill()
@ -79,7 +79,7 @@ ray.get(_.value.remote())
assert len(actor_table) == 1
job_table = ray.jobs()
assert len(job_table) == 3 # dash, ray client server
assert len(job_table) == 2
# Kill the driver process.
p.kill()