Commit graph

6713 commits

Author SHA1 Message Date
Jian Xiao
c9f31af27f
[CI] Fix Windows wheel build (#24748) 2022-05-12 16:23:50 -07:00
Stephanie Wang
2fd888ac9d
[core] Skip windows test for adjusting worker OOM score (#24744)
Fixes CI failure introduced in #24623.
2022-05-12 13:01:50 -07:00
Archit Kulkarni
dae7842ac5
[runtime env] Remove plugin name from internal URI (#24706)
This was a holdover from when local resources for URIs were deleted directly from the runtime env agent, and the URI name itself needed to store the information of which plugin it corresponded to so the appropriate plugin's `delete()` function could be called.  After the URI reference refactor, I don't think this is needed anymore.
2022-05-12 11:40:03 -05:00
Amog Kamsetty
c4bf38daa6
[AIR] Add AIR install extra (#24701)
Closes #23439
2022-05-12 09:25:52 -07:00
Jiajun Yao
628f886af4
Don't show usage stats prompt in dashboard if prompt is disabled (#24700) 2022-05-12 07:55:28 -07:00
Antoni Baum
8af1cc1ba1
[Tune] Fix Jupyter reporter with older IPython (#24695)
Fixes `JupyterNotebookReporter` not working with older IPython versions (eg. 5.5.0, installed on Google Colab).
2022-05-12 12:27:35 +01:00
Kai Fricke
b0fa9d6766
[air] Example for Comet ML (#24603)
After #24459, this PR will add similar support for model artifact saving and an example for experiment tracking with Ray AIR for Comet ML.
2022-05-12 12:12:30 +01:00
Kai Fricke
fef1586922
[air/tune] Add get_dataframe() method to result grid, fix config flattening (#24686)
Adds `get_dataframe()` method to pass through experiment analysis to result grid. Also fixes config dictionary returns which previously did not flatten the dict (even though the docstring suggested it would)
2022-05-12 10:02:19 +01:00
Jian Xiao
5f347a6d70
Ubreak the windows wheel building (#24699)
Unbreak the windows wheel building.
2022-05-12 00:23:56 -07:00
Qing Wang
259661042c
[runtime env] [java] Support jars in runtime env for Java (#24170)
This PR supports setting the jars for an actor in Ray API. The API looks like:
```java
class A {
    public boolean findClass(String className) {
      try {
        Class.forName(className);
      } catch (ClassNotFoundException e) {
        return false;
      }
      return true;
    }
}

RuntimeEnv runtimeEnv = new RuntimeEnv.Builder()
    .addJars(ImmutableList.of("https://github.com/ray-project/test_packages/raw/main/raw_resources/java-1.0-SNAPSHOT.jar"))
    .build();
ActorHandle<A> actor1 = Ray.actor(A::new).setRuntimeEnv(runtimeEnv).remote();
boolean ret = actor1.task(A::findClass, "io.testpackages.Foo").remote().get();
System.out.println(ret); // true
```
2022-05-12 09:34:40 +08:00
Yi Cheng
c427bc54e7
[core] Move reconnection to RPC layer for GCS client. (#24330)
This PR support reconnection of the GCS client in gRPC channel layer. Previously this is implemented in the application layer:

- Health check is in the application layer by starting a new channel.
- Monitor the GCS address change and do resubscribe.
- Always retry the failed request and do reconnection in case of a failure.

However, there are several issues with this approach:

- We need service to discover for GCS address change. 
- Monitor is too heavy since it always creates a channel.
- Reconnection is a blocking call that prevents the code from running.

This new approach moves the reconnection to gRPC layer directly to fix these issues.

- DNS name resolution is done by gRPC so we don't need to write this.
- Health check is done by checking the channel state.
- Queue the failed call and retry once GCS is up so that it's not a blocking call.
2022-05-11 16:27:22 -07:00
Sihan Wang
c5bfe1d694
[Serve] Add deployment graph cookbook (#24524) 2022-05-11 16:24:55 -07:00
Stephanie Wang
6ea825c294
[core] Adjust worker OOM scores to prioritize the raylet during memory pressure (#24623)
Under heap memory pressure, the raylet is often killed by the OS OOM killer. This is bad because it can cause whole system crashes and it is difficult to find the error afterwards. This PR adjusts the OOM score for any workers that the raylet spawns so that the OOM killer will hopefully prioritize killing those instead of the raylet.
2022-05-11 15:32:23 -07:00
Antoni Baum
47edb497c5
[data] More informative exceptions in block impl (#24665) 2022-05-11 14:53:40 -07:00
Archit Kulkarni
93d61b6d48
[runtime_env] Add debug prints to serve:test_runtime_env which is flaky (#24670) 2022-05-11 16:03:46 -05:00
Chris K. W
11650b56e2
[client] Chunk ClientTask's (#24555)
Adds support for chunking large schedule calls. Needed to support ray.remote calls with more than 2GiB of arguments.

Deprecates the args and kwargs fields of ClientTask and replaces them with a data field that contains a tuple of the serialized args and kwargs fields, which can be chunked and reassembled more easily using the same logic as PutRequest's.
2022-05-11 13:37:52 -07:00
YoelShoshan
5a43b075bc
Add screen custom log file support (#24461)
A simple way to redirect remote job output to a custom file is extremely useful.
Especially if it does not require any code changes for the user, and especially if it captures all output and not limited only to python logging.

When the PR will be merged, the user will be able to do the following (for example):

ray submit some_cluster_config.yaml example_runnable_script.py --screen --extra-screen-args "-Logfile /gpfs/usr/someone/ray/output_log.txt"
which will, in addition to creating the screen session, also output (continuously) to custom text file.
It allows additional flexibility, for example, the user will be able to choose custom screen session name etc.
2022-05-11 12:16:47 -07:00
Dmitri Gekhtman
c6d3ffb133
[KubeRay][NodeProvider] Ignore pods with deletionTimestamp. (#24590)
Closes #24514 by filtering out pods with metadata.deletionTimestamp set in the KuberayNodeProvider.

Adds some e2e test logic to confirm reasonable behavior when Ray worker pod termination hangs.

Also, a bit of code cleanup -- defining constants, adding to doc strings, etc.
2022-05-11 10:49:34 -07:00
Makan Arastuie
5e23d9e298
[Tune] Bug fix - HEBOSearch - accept iterables as a config search space (#24678)
HEBOSearch algorithm currently fails if the config search space contains a categorical parameter where each category is an iterable.

For instance, choosing the hidden layers of a NN:
` hyperparam_search_space = {'hidden_sizes': tune.choice([[512, 256, 128], [1024, 512, 256]])}`

This is due to the creation of the Pandas DataFrame with HEBO suggested parameters, without explicitly telling Pandas that the hyper-parameter suggestion is a single row of data while the index is being defined as a single row. This results in an exception such as "ValueError: Length of values (3) does not match length of index (1)".

Co-authored-by: Makan Arastuie <makan.arastuie@seagate.com>
2022-05-11 18:29:50 +01:00
Antoni Baum
e95207a298
[data] Expose drop_last in to_tf (#24666) 2022-05-11 09:46:08 -07:00
Antoni Baum
aaead7e3b3
[AIR] Add load_checkpoint functions to Trainers (#24518)
Co-authored-by: Amog Kamsetty <amogkam@users.noreply.github.com>
2022-05-11 09:45:50 -07:00
Eric Liang
4c6fccafe6
Add a small timeline delay (#24673) 2022-05-10 21:04:40 -07:00
Jiajun Yao
1daad65568
[Doc] Add doc for usage stats collection (#24522) 2022-05-10 17:18:49 -07:00
Simon Mo
217939d441
[Serve] Mute Sync Handle Warnings in DAGHandle (#24629) 2022-05-10 16:03:09 -07:00
Yi Cheng
6c60dbb242
[scheduler][6] Integrate ray with syncer. (#23660)
The new syncer comes with the feature of long-polling and versioning. This PR integrates it with ray.
2022-05-10 13:12:22 -07:00
Antoni Baum
04e16f70a3
[Datasets] [Docs] Add a warning about from_huggingface (#24608)
Adds a warning to docs about the intended use of from_huggingface.
2022-05-10 13:08:25 -07:00
Amog Kamsetty
c87c50b156
[Tune] Raise better error messages for failures with ResultGrid.get_best_result (#24610)
Co-authored-by: Kai Fricke <krfricke@users.noreply.github.com>
2022-05-10 13:06:44 -07:00
Simon Mo
962e839f13
[Serve] Enable SO_REUSEPORT beyond hasattr check (#22743) 2022-05-10 11:24:23 -07:00
Balaji Veeramani
c9cd4a75e8
[AIR] Fix Categorizer.__repr__ attribute error (#24640)
__repr__ fails because stats_ attribute is not assigned until _fit is called.
2022-05-10 11:12:49 -07:00
Amog Kamsetty
a36e2a8f51
[Tune] Deprecate DistributedTrainableCreator (#24453)
Fully deprecate DistributedTrainableCreator for Ray 2.0

Closes #24453
2022-05-10 11:06:43 -07:00
Dmitri Gekhtman
29eebdfef2
[Autoscaler][Local Node Provider] Log a warning if max_workers < len(worker_ips) (#24635)
Logs a warning when a user sets max_workers for local node provider less than the number of available ips.

Also removes defaults of 0 for min_workers and max_workers from example configs to help prevent users inadvertantly setting max_workers=0 again.
2022-05-10 10:03:29 -07:00
Edward Oakes
4c1f27118a
[job submission] Don't set CUDA_VISIBLE_DEVICES in job driver (#24546)
Currently job drivers cannot use GPUs due to `CUDA_VISIBLE_DEVICES` being set (no resource request for job driver's supervisor actor). This is a regression from `ray submit`.

This is a temporary workaround -- in the future we should support a resource request for the job supervisor actor.
2022-05-10 11:43:04 -05:00
shrekris-anyscale
511d5d027b
[serve] Fix circular imports in api.py's serve.run() and build() functions (#24616)
There are delayed imports in the [`run()`](https://github.com/ray-project/ray/blob/master/python/ray/serve/api.py#L596-L597) and [`build()`](https://github.com/ray-project/ray/blob/master/python/ray/serve/api.py#L672) functions in [`api.py`](https://github.com/ray-project/ray/blob/master/python/ray/serve/api.py). These imports are no longer circular due to recent refactoring (see #23578 and #23759). This change promotes them to top-level imports.
2022-05-10 10:50:43 -05:00
Kai Fricke
d9b54d8bfa
[tune] Limit progress table column length (#24599)
Especially when using datasets, we sometimes run into very long string representations. Tune should make sure to cut these according to a specified maximum length.

Co-authored-by: Antoni Baum <antoni.baum@protonmail.com>
2022-05-10 09:28:47 +02:00
Siyuan (Ryans) Zhuang
bf6b7f4395
[Workflow] Simplify recovery algorithm (#24594)
* simplify recovery algorithm
2022-05-09 22:03:31 -07:00
Kai Yang
4a999777fa
[Core] Allow accepting gRPC HTTP proxy via env variable (#23526) 2022-05-10 11:30:46 +08:00
Siyuan (Ryans) Zhuang
6e17c4a2b7
[core] More tests for setting options for Ray libraries (#24591)
* test

* update
2022-05-09 13:18:43 -07:00
Matti Picus
ffb67203e9
debug call_ray_start failure (#24252)
Exploring #24251. The call to the `call_ray_start` fixture seems to be timing out in `test_ray_init`.
2022-05-09 13:28:28 -05:00
Simon Mo
07986349c6
[Serve] Run health check in separate thread (#24560) 2022-05-09 09:59:37 -07:00
Kai Fricke
76da2255d9
[air/rllib] Add RL serving example (#24215)
This PR includes the changes from #24172

This PR adds an end-to-end training and serving example for the RLTrainer/RLPredictor. It also adds an `RLServeEnv` that can be used as an external env for rllib inference, querying the served policy from the RLPredictor.

This draft PR runs end to end, but I'd like to gather some initial feedback before promoting it to a full PR.
2022-05-09 16:44:49 +02:00
Artur Niederfahrenhorst
bc8742792c
[Tune] Logging of bad results dict keys (#23954)
[User complains](https://discuss.ray.io/t/which-attributes-can-be-used-in-checkpoint-score-attr-when-using-tune-run/5826) about logging on failure of locating `checkpoint_score_attr ` in results dict not being informative.
I propose that we log the actual results dict keys and extended stopping criteria, which imho should not log the whole result dict as this might contain tensors.

Maybe there are other similar cases in tune library, in which I don't know my way around that good.
2022-05-09 11:54:11 +02:00
Dmitri Gekhtman
e3db45eb86
[hotfix][kuberay][docs] Match up Ray versions in example config (#24580)
This PR fixes a typo in the KubeRay example config in Ray's docs.

Specifics:
Ray versions in the Ray repo's example KubeRay CR were recently updated from 1.11.0 to 1.12.0.
However, the worker group's Ray version was accidentally left at 1.11.0. This leads to alarming crash-looping when deploying the example in the docs.

This PR matches up the Ray images by setting the worker group to rayproject/ray:1.12.0.
2022-05-08 16:01:34 -07:00
Linsong Chu
5964a58d84
[Workflow] Enable auto-config for persistent storage when connecting to existing cluster (#24490)
* fix init() requires hardcoded storage path when connecting to existing cluster

* update tests with new init(storage) behavior

* update tests with latest api behavior
2022-05-08 15:42:29 -07:00
Jiajun Yao
d462172be7
Add doc for actor spread scheduling (#24552)
grant_or_reject for raylet based actor scheduling is implemented as part of #23829, so spread scheduling now works for actors just like tasks.
2022-05-06 21:36:47 -07:00
Jian Xiao
78cab9f0f1
Test the CSV read with column types specified (#24398)
Make sure users can read csv with columns types specified.
Users may want to do this because sometimes PyArrow's type inference doesn't work as intended, in which case users can step in and work around the type inference.
2022-05-06 21:29:11 -07:00
Simon Mo
95c11c97ef
[Serve] Ensure SimpleSchemaIngress uses FastAPI custom serializers (#24549) 2022-05-06 14:17:36 -07:00
Antoni Baum
668049492c
[Datasets] Add from_huggingface for Hugging Face datasets integration (#24464)
Adds a from_huggingface method to Datasets, which allows the conversion of a Hugging Face Dataset to a Ray Dataset. As a Hugging Face Dataset is backed by an Arrow table, the conversion is trivial.
2022-05-06 13:09:28 -07:00
Siyuan (Ryans) Zhuang
84ccab2d5f
[workflow] Defining and updating workflow options (#24498)
* implement "options" for workflow

* update tests
2022-05-06 13:08:22 -07:00
Charles Greer
189f7a469b
change docs for ray.remote num_gpus (#24551)
The documentation says that @ray.remote can take fractional num_gpus which is true, but the documentation lists it as an integer. I think this is strictly a problem in the docs.
2022-05-06 11:04:11 -07:00
Kai Fricke
5d9bf4234a
[air] Example to track runs with Weights & Biases (#24459)
This PR 
- adds an example on how to run Ray Train and log results to weights & biases
- adds functionality to the W&B plugin to store checkpoints
- fixes a bug introduced in #24017
- Adds a CI utility script to setup credentials
- Adds a CI utility script to remove test state from external services cc @simon-mo
2022-05-06 15:52:37 +01:00