Commit graph

13292 commits

Author SHA1 Message Date
Chen Shen
2c5c0f6cee
[Core] ensure uniqueness in spilled file name (#26420)
There are cases that same object is being spilled twice due to failures. This made two spill worker overwrites the same file and causing corruption. The fix is as simple as ensure the uniqueness of the file.

close #26395
2022-07-11 14:39:44 -07:00
Jiao
d95dc2f2e5
[AIR][GPU Batch Prediction] Add basic support for GPU batch prediction (#26251)
This PR adds GPU support for pytorch and tensorflow predictor, as well as automatic setting `use_gpu` flag in `BatchPredictor`.

Notable changes:
- Added `use_gpu` flag in the constructor of `TorchPredictor` and `TensorflowPredictor` (note it's slightly different from our latest design doc that puts this flag at `predict()` call)
- Added `use_gpu` flag to `SklearnPredictor` so its interface is compatible with `BatchPredictor`
- Code to move both model weights and input tensor to default visible GPU at index 0 if flag is set 
- parametrized existing predictor tests to use GPU for both CPU & GPU coverage
- Changed BUILD CI tests with an added `gpu` tag (I'm not 100% sure if that's a right way tho)

Follow ups:

https://github.com/ray-project/ray/issues/26249 is created in case our host has multiple GPU devices. It's a bit out of scope for this PR, but for GPU batch inference ideally we should be able to evenly use all GPU devices on host where CPU & DRAM are busy with pre-fetching + data movement to GPU. We might approximately do the same by scheduling same # of Predictor instances on the host, but that's worth verifying once benchmarks are set.
2022-07-11 13:04:15 -07:00
Kai Fricke
753f5feaf4
[tune] Remove TrialCheckpoint class (#25406)
The old user-facing TrialCheckpoint class has been deprecated in favor of `ray.ml.Checkpoint` and will be removed with this PR.

The main change in this PR is to delete the old `TrialCheckpoint` class and replace remaining API calls (e.g. `checkpoint.local_path`) with the correct AIR equivalents.

One issue that comes up is that with Ray client usage, checkpoint directories are not available on the local node (the client). Thus, we can't construct `Checkpoint` objects easily. (Previously, the TrialCheckpoint object held a reference to the location, even if it is not locally available). There are ongoing discussions on how to resolve this in the future. For now, we print an error when such a checkpoint is requested.

Depends on #25805

Signed-off-by: Kai Fricke <kai@anyscale.com>
2022-07-11 20:08:10 +01:00
Jian Xiao
923209895d
Pipelined training test: change num of windows; log the ingestion perf (#26429)
Why are these changes needed?
Improve test perf
Log the perf stats
With 2 windows there are a lot of spilling, slowing down the throughput.
2022-07-11 11:03:35 -07:00
xwjiang2010
c97d65e64f
[tune] fix hebo_example. (#26439)
Fixes a bug in the the ipython notebook.
2022-07-11 17:12:10 +01:00
Amog Kamsetty
b01e11d721
[Docker] Add support for Cuda 11.3 (#26233)
Start building Ray docker images with cuda 11.3
2022-07-10 21:50:42 -07:00
Philipp Moritz
dae4ec2f23
Fix dashboard link in HTML reprs for ClientContext and WorkerContext (#26431)
This fixes the dashboard link in https://github.com/ray-project/ray/pull/25730 -- without this I'm getting

<img width="1378" alt="Screen Shot 2022-07-09 at 8 08 06 PM" src="https://user-images.githubusercontent.com/113316/178129698-7ef19ee3-d577-4fd9-a4d5-0cee1ca35f5f.png">

because Jupyter is interpreting the URL as relative to the notebook URL.
2022-07-09 23:30:40 -07:00
Richard Liaw
5892a76a44
[air/tune] Documentation testing fixes (#26409) 2022-07-09 19:47:21 -07:00
Yi Cheng
a68c02a15d
[dashboard][2/2] Add endpoints to dashboard and dashboard_agent for liveness check of raylet and gcs (#26408)
## Why are these changes needed?
As in this https://github.com/ray-project/ray/pull/26405 we added the health check for gcs and raylets.

This PR expose them in the endpoint in dashboard and dashboard agent.

For dashboard, we added `http://host:port/api/gcs_healthz` and it'll send RPC to GCS directly to see whether the GCS is alive or not.

For agent, we added `http://host:port/api/local_raylet_healthz` and it'll send RPC to GCS to check whether raylet is alive or not.

We think raylet is live if
- GCS is dead
- GCS is alive but GCS think the raylet is dead

If GCS is dead for more than X seconds (60 by default), raylet will just crash itself, so KubeRay can still catch it.
2022-07-09 13:09:48 -07:00
Philipp Moritz
2f28d05f29
[Doc] Fix docs feedback button (#26402) 2022-07-09 09:35:06 -07:00
Yi Cheng
39cb1e5f97
[core][1/2] Improve liveness check in GCS (#26405)
CheckAlive in GCS is only for checking GCS's liveness. But we also need to check the liveness for raylet.

In KubeRay, we can check the liveness directly by monitoring the raylet's liveness. But it's not good enough given that raylet's process liveness is not directly related to raylet's liveness.

For example, during a network partition, raylet is not able to connect to GCS. GCS mark raylet as dead. So for the cluster, although raylet process is still alive, it can't be treated as alive because GCS has told all the nodes that it's dead.

So for KubeRay, it also needs to talk with GCS to check whether it's alive or not.

This PR extends the CheckAlive API to include raylet address so that we can query GCS to get the cluster status directly.
2022-07-09 16:32:31 +00:00
Jun Gong
0c469e490e
[RLlib] Checkpoint and restore connectors. (#26253) 2022-07-09 01:06:24 -07:00
Siyuan (Ryans) Zhuang
7fcf0adebb
[Workflow] Minor refactoring of workflow exceptions (#26398)
* minor refactoring
2022-07-09 00:46:43 -07:00
Siyuan (Ryans) Zhuang
b0e913fd07
[workflow] Workflow queue (#24697)
* implement workflow queue
2022-07-08 17:24:45 -07:00
Jun Gong
d234348bd2
[RLlib] Minor simplification of code. (#26312) 2022-07-08 13:21:54 -07:00
Amog Kamsetty
cc43bcccb4
[AIR] Update TensorflowPredictor to new API (#26215)
Updates TensorflowPredictor to use the new _predict_pandas API.

Also as agreed upon offline, removes the extra configurations from TensorflowPredictor (column selection, concatenation) in favor of having this be done via a Preprocessor.
2022-07-08 13:04:49 -07:00
Avnish Narayan
1243ed62bf
[RLlib] Make Dataset reader default reader and enable CRR to use dataset (#26304)
Co-authored-by: avnish <avnish@avnishs-MBP.local.meter>
2022-07-08 12:43:35 -07:00
Archit Kulkarni
61c9e761f3
[runtime_env] [doc] Remove outdated info about "isolated" environment (#26314) 2022-07-08 14:15:12 -05:00
Philipp Moritz
7127c03837
[Doc] Fix rate-the-docs plugin (#26384) 2022-07-08 12:10:58 -07:00
ej
636105e8e2
[Docs] [Serve] Has a consistent landing page style (#26029) 2022-07-08 11:58:21 -07:00
Nikita Vemuri
56716a1c1b
[dashboard] Add RAY_CLUSTER_ACTIVITY_HOOK to /api/component_activities (#26297)
Add external hook to /api/component_activities endpoint in dashboard snapshot router
Change is_active field of RayActivityResponse to take an enum RayActivityStatus instead of bool. This is a backward incompatible change, but should be ok because [dashboard] Add component_activities API #25996 wasn't included in any branch cuts. RayActivityResponse now supports informing when there was an error getting the activity observation and the reason.
2022-07-08 10:51:59 -07:00
Kai Fricke
e1a7efe148
[tune] Use Checkpoint.to_bytes() for store_to_object (#25805)
We currently use our own serialization to ship checkpoints as objects. Instead we should use the Checkpoint class. This PR also adds support to create results from checkpoints pointing to object references.

Depends on #26351

Signed-off-by: Kai Fricke <kai@anyscale.com>
2022-07-08 18:01:20 +01:00
Antoni Baum
0e259ff844
[tune] Fix SyncerCallback having a size limit (#26371)
#25655 refactored syncing but it introduced a regression - previously, dirs of any size could have been synced, but now only dirs below the default limit of 1 GB can be. This PR fixes this regression allowing dirs of any size to be synced.
2022-07-08 17:58:41 +01:00
Kai Fricke
86b9b4b7a5
[air] Serialize additional files in dict checkpoints turned dir checkpoints (#26351)
With this PR, files put into directory checkpoints that were dict checkpoints will be serialized and retained when a subsequent to_dict() is called. This is to enable storing additional files, as e.g. needed by Ray Tune.

Signed-off-by: Kai Fricke <kai@anyscale.com>
2022-07-08 10:03:16 +01:00
Philipp Moritz
6dd564d8b5
[Docs] Add "rate the docs" plugin for feedback on docs (#26330) 2022-07-07 22:30:32 -07:00
Philipp Moritz
60c5ed7bfd
[Doc] Fix actor example (#26381) 2022-07-07 21:19:51 -07:00
Jiajun Yao
743e2f403a
Set RAY_USAGE_STATS_EXTRA_TAGS for release tests (#26366)
- Record the test name for the usage stats.
- Change the cluster name to indicate if it's smoke test or not.
2022-07-07 21:17:34 -07:00
Cheng Su
4e674b6ad3
[Datasets] Update docs for drop_columns and fix typos (#26317)
We added drop_columns() API to datasets in #26200, so updating documentation here to use the new API - doc/source/data/examples/nyc_taxi_basic_processing.ipynb. In addition, fixing some minor typos after proofreading the datasets documentation.
2022-07-07 17:17:33 -07:00
Antoni Baum
ea94cda1f3
[AIR] Replace train. with session. (#26303)
This PR replaces legacy API calls to `train.` with AIR `session.` in Train code, examples and docs.

Depends on https://github.com/ray-project/ray/pull/25735
2022-07-07 16:29:04 -07:00
Yi Cheng
f2f1086868
[serve] Add healthz endpoint for HttpProxy (#26347) 2022-07-07 14:01:42 -07:00
Sijie Wang
3ad13fb4c1
[Doc] Disable the autoselection of the first instant search result so it's easier to see the full search results (#26367) 2022-07-07 12:54:41 -07:00
Antoni Baum
b9a4f64f32
[AIR/train] Use new Train API (#25735)
Uses the new AIR Train API for examples and tests.

The `Result` object gets a new attribute - `log_dir`, pointing to the Trial's `logdir` allowing users to access tensorboard logs and artifacts of other loggers.

This PR only deals with "low hanging fruit" - tests that need substantial rewriting or Train user guide are not touched. Those will be updated in followup PRs.

Tests and examples that concern deprecated features or which are duplicated in AIR have been removed or disabled.

Requires https://github.com/ray-project/ray/pull/25943 to be merged in first
2022-07-07 12:28:37 -07:00
xwjiang2010
40f9561f78
[ml/release] fix ptl ml user test. (#26365)
Between version1 and 2 of [this](https://console.anyscale-staging.com/o/anyscale-internal/configurations/app-config-versions/apt_TsCpJCRjMJDpNFhNgJmyCniS) cluster_env, 1 fails and 2 succeeds.

btw, we really should start to think about a systematic approach towards our python dependency story.
- between client and server
- but more importantly server side, and any conflicts among requirements
- how are pip freeze result evolving over time
2022-07-07 11:45:46 -07:00
Stephanie Wang
dcc913073f
[testing] Run 100TB shuffle test nightly (#26306)
Run this test nightly to collect more datapoints on stability and performance of 100TB shuffle.
2022-07-07 09:59:54 -07:00
Jun Gong
b23642473b
[Datasets] When getting a column's value from a PandasRow, catch ValueError (#26278)
Otherwise, things won't work for columns that has an ndarray as the value.
2022-07-07 09:55:03 -07:00
SangBin Cho
2dd5fdfdf1
[Usage stats] Add tags & number of nodes to the report. (#25852)
This PR adds the RAY_EXTRA_USAGE_TAGS to add additional tag metadata + number of nodes to the report.
2022-07-07 08:31:04 -07:00
Kai Fricke
9b49417a72
[ci/hotfix] Pin raydp-nightly (#26358)
Alternative to #26356 - here we just pin raydp-nightly and resolve the dependency issues in follow-up PRs.

This is to quickly unblock CI.

Signed-off-by: Kai Fricke <kai@anyscale.com>
2022-07-07 14:54:01 +01:00
Guyang Song
857e51aadc
[C++ API] script exits if a single command fails(#26344) 2022-07-07 16:54:53 +08:00
Kai Yang
e31baebc4e
[Core] Fix WaitManager dealing with duplicate objects (#26256)
When calling an actor method with duplicate ObjectRefs, the actor method will never be executed. The root cause is that `WaitRequest::ready` is of type `std::unordered_set` rather than `std::vector`.

b9ade079cb/src/ray/raylet/wait_manager.h (L77)

So the below if conditions won't be true.

b9ade079cb/src/ray/raylet/wait_manager.cc (L45-L48)

b9ade079cb/src/ray/raylet/wait_manager.cc (L103-L105)

The bug was introduced by https://github.com/ray-project/ray/pull/21369, so it exists in Ray 1.11.0+.
2022-07-07 15:14:09 +08:00
brucez-anyscale
f76d7b23f2
Revert "Revert "[Dashboard][Serve] Move Serve related endpoints to dashboard agent"" (#26336) 2022-07-06 19:37:30 -07:00
Siyuan (Ryans) Zhuang
b803792b58
[workflow] Standardize workflow blocking and nonblocking APIs (#26318)
This PR unified the semantics of some workflow APIs.

Those workflow APIs acts on workflow tasks so they could be blocked for a long time. So we have both the blocking and non-blocking versions for them: xxx for blocking and xxx_async for non-blocking APIs.
2022-07-06 13:35:36 -07:00
Yi Cheng
12d147ff1f
Revert "[Dashboard][Serve] Move Serve related endpoints to dashboard agent (#26107)" (#26333)
This reverts commit 84166ccb04.
2022-07-06 13:30:33 -07:00
Philipp Moritz
1ba8c8cc67
[Examples] OCR Ray Datasets example (#25930)
This is a simple example that shows how to do OCR with Ray Datasets. It includes:

- How to upload and download the dataset to and from S3
- How to run OCR on the dataset with tesseract
- How to use actors to keep around and re-use a spaCy context for doing NLP on the data

Co-authored-by: Clark Zinzow <clarkzinzow@gmail.com>
2022-07-06 13:11:26 -07:00
Peyton Murray
ea47d97a54
[Core] Add HTML reprs for ClientContext and WorkerContext (#25730) 2022-07-06 12:19:19 -07:00
Alex Wu
146f65ba7a
[docs] Update docs for building from source (#26045)
The existing docs didn't work for me and these updates did. 🤷‍♀️ I selectively pulled this stuff out of the CI (which ideally would just be runnable locally).
2022-07-06 12:17:05 -07:00
SangBin Cho
079ae9f013
[Test] Fix flaky OSX shuffle (#26158)
Seems like the last RPC is failing after shuffle succeeds. Adding retry to fix the issue.
2022-07-06 11:16:09 -07:00
brucez-anyscale
84166ccb04
[Dashboard][Serve] Move Serve related endpoints to dashboard agent (#26107)
In Ray 2.0, we want to achieve api server HA.
Originally serve endpoints are in head node.
This pr moves serve endpoints to dashboard agents, so they will be HA due to multiple replica of dashboard agent.
2022-07-06 10:58:00 -07:00
Chen Shen
29358f9677
[Core][Doc] add docs for out of disk prevention. (#26291)
Update docs to reflect the out of disk prevention feature.
2022-07-06 07:37:54 -07:00
Steven Morad
0bc465f687
[RLlib] Fix docstring and add unit tests for rnn sequencing. (#26197) 2022-07-06 14:32:57 +02:00
Tao Wang
b3ba1e7ea2
[Test]Disable java call cpp actor case for now (#26288) 2022-07-06 19:53:30 +08:00