Commit graph

5632 commits

Author SHA1 Message Date
Kai Fricke
236951ee4c
[tune] Introduce TrialCheckpoint class, making checkpoint down/upload easie (#20585)
This PR introduces a TrialCheckpoint class which is returned e.g. by ExperimentAnalysis.best_checkpoint. The class enables easy access to cloud storage locations (rather than just local directories before). It also comes with utilities to download, upload, and save trial checkpoints to local and cloud targets.
2021-11-22 14:16:26 +00:00
Dmitri Gekhtman
76a01862cb
[autoscaler][commands] Fix load metrics summary (#20623)
Running ray status with the changes from #20359
while running an autoscaler older than those changes
results in an error on input "head_ip" to LoadMetricsSummary.
See #20359 (comment)
This PR fixes the bug by restoring head_ip as an optional parameter of LoadMetricsSummary.
2021-11-22 07:34:02 -05:00
matthewdeng
caa4ff3783
[train][datasets] update example and remove dask (#20592) 2021-11-21 17:06:44 -08:00
Dmitri Gekhtman
0f70f40a2a
[autoscaler] Fewer non terminated nodes calls (#20359)
non_terminated_nodes calls are expensive for some node provider implementations.

This PR refactors autoscaler._update() such that it results in at most one non_terminated_nodes call.
Conceptually, the change is that the autoscaler only needs a consistent view of the world once per update interval.

The structure of an autoscaler update is now

call non_terminated_nodes to update internal state
update autoscaler status strings
terminate nodes we don't need, removing them from internal state as we go
run node updaters if needed
get nodes to launch based on internal state
There's a small operational difference introduced:
Previously -- After a node is created, its NodeUpdater thread is initiated immediately.
Now -- After a node is created, its NodeUpdater thread is initiated in the next autoscaler update.

This typically will not introduce latency, since the time to get SSH access (a few minutes) is much longer than the autoscaler update interval (5 seconds by default).

Along the way, I've removed the local_ip initialization parameter for LoadMetrics because it was confusing and not useful (and caused some tests to fail)
2021-11-21 12:22:24 -05:00
Yi Cheng
36ee3fd46b
[gcs] Remove rpush for storage in py (#20410)
## Why are these changes needed?
In python, redis rpush is used to broadcast and store the keys. In this PR, we use gcs kv to store the keys. pubsub is still using redis which need to be remove later.

The protocol before this PR:
- worker subscribe to redis key spaces
- worker write the key of function/actor to (export:sqn, key)
- so the other worker will be notified and start to load the data by checking export:sqn

This depends on redis for both kv and pubsub, and this PR fix the kv part.

After this PR:
- worker subscribe to redis key space
- For exporting:
  - worker will find the first key not being hold. This is guaranteed by internal kv which right now is a single thread, atomic db. The worker will just check until it find one key not existing and write it (this is single operation). One optimization right now is to use the import counter as the start offset since this counter means all keys before the counter has already been used.
  - worker will then write a dummy key to redis key space for broadcasting
- For importer
 - It's working as before, but instead of reading from redis, it will read from gcs kv.


This is part in redis removal project.

## Related issue number
https://github.com/ray-project/ray/issues/19443
2021-11-21 00:40:13 -08:00
Stephanie Wang
88136fa495
[core] Timeout object fetches that take too long (#20516)
Remerging #19789 with some fixes for Dask-on-Ray 1TB sort:

- Fixes a bug where the timer was not getting reset correctly
- Increased timeout to 10min just to be safe
- Changed the error to a unique exception ObjectFetchTimedOutError to improve debugging. 

This exception should usually indicate a system-level bug.
2021-11-20 16:43:56 -08:00
Guyang Song
ad56b9b432
[runtime env] redefine runtime env to protobuf (#19511) 2021-11-20 16:54:42 +08:00
Jiajun Yao
255bdc8fb1
Make fake node provider thread safe (#20591)
We may have multiple NodeLauncher threads access the same node provider so it should be thread safe.
2021-11-19 18:59:38 -08:00
Amog Kamsetty
e1cd7b0016
[Train] Propagate env vars to BackendExecutor (#20523)
Propagates environment variables to BackendExecutor actor using runtime envs.

Also actually run test_callbacks in CI.

Note that there is an issue with runtime envs: #20587. But this only happens if you shutdown Ray and start a new session again.
2021-11-19 15:36:03 -08:00
Alex Wu
4cc225e9d4
Revert "Revert "[core] Nested task support via task depth + backpressure" (#20438)" (#20443)
This PR reverts the previous revert with the following minor changes.

Worker capping is off by default.
The cap feature flag is on the for the tests that explicitely require it.
2021-11-19 15:22:35 -08:00
Antoni Baum
c385756817
[datasets] Add an env var for progress bar behavior (#20586)
Adds a RAY_DATA_DISABLE_PROGRESS_BARS env var to control the default progress bar behavior. The default value is "0". Setting it to "1" disables progress bars, unless they are reenabled again by the set_progress_bars method.
2021-11-19 15:09:58 -08:00
mwtian
da79f24e8c
[Core][Pubsub] Refactor to prepare for migrating logging to Ray pubsub (#20560)
## Why are these changes needed?
Publisher and subscriber for logs, in driver, dashboard and tests are refactored to make it easier to support using Ray pubsub for logs. Actual support of Ray pubsub for logs will be added later in #20492.

This PR does not intend to introduce any behavior change.

## Related issue number
2021-11-19 12:28:37 -08:00
Chen Shen
77a8723bba
[Core][actor out-of-order execution 6/n] plumbing work to make it work e2e (#20177)
This PR is the last PR that enables out of order execution. Previous PR: #20176

In this PR specifically, we added an execute_out_of_order option to .options call, which creates the actor with both out_of_order_submit_queue and out_of_order_scheduling queue.

this PR also added @simon-mo original case for testing.
2021-11-19 11:05:18 -08:00
Dmitri Gekhtman
41af24c2ea
Head pod identity can change (#20566) 2021-11-19 09:57:48 -08:00
Eric Liang
79911510d3
Raise better error message when workers are killed with SIGTERM in k8s (#20557)
In k8s, sigterm almost always means the pod was killed due to memory limits. Raise a better error message there.
2021-11-19 09:36:37 -08:00
Ameer Haj Ali
3c308667f1
[Tune] Fix checkpointing error message on K8s (#20559)
This commit improves the error message to guide users to setup cloud checkpointing if trial checkpoint syncing failed.
2021-11-19 09:17:38 +00:00
Eric Liang
65a8698e82
Raise the dataset block size limit to 2GiB (#20551)
The default block size of 500MiB seems too low for some common workloads, e.g. shuffling 500GB. This creates 1000 blocks which means 1 million intermediate shuffle objects until we implement #20500.
2021-11-18 19:36:10 -08:00
Clark Zinzow
2d50bf1302
[Datasets] Bump NumPy version to >= 1.19.0 for Python 3.6. (#20542)
Datasets groupby boundary sampling requires `numpy>=1.19.0` otherwise it fails to concatenate the Arrow table columns.
2021-11-18 17:33:06 -08:00
Clark Zinzow
462e389791
[Datasets] Fix empty Dataset.iter_batches() when trying to prefetch more blocks than exist in the dataset (#20480)
Before this PR, `ds.iter_batches()` would yield no batches if `prefetch_blocks > ds.num_blocks()` was given, since the sliding window semantics were to return no windows if `window_size > len(iterable)`. This PR tweaks the sliding window implementation to always return at least one window, even if the one window is smaller than the given window size.
2021-11-18 17:02:54 -08:00
Antoni Baum
0b14f38ac7
[tune] Multi-objective support for Optuna (#20489)
This PR adds multi-objective support for Optuna searchers, including a test and example.

Co-authored-by: gjoliver <jungong@anyscale.com>
2021-11-18 18:47:29 +00:00
Simon Mo
7143d5d494
[Serve] Bump timeout for test_standalone to fix windows (#20543) 2021-11-18 10:00:23 -08:00
Edward Oakes
d26c9e67e8
[job submission] Add a message to the JobStatus to return more detailed errors (#20491) 2021-11-18 10:15:23 -06:00
shrekris-anyscale
a91ddbdeb9
Add smart_open dependency to ray[default] (#20420) 2021-11-18 10:00:30 -06:00
Amog Kamsetty
9796ae56d5
[Train][Data] Change usages of iter_datasets to iter_epochs (#20487) 2021-11-17 18:05:51 -08:00
Gagandeep Singh
33b4245df2
Fix race condition when starting redis (#19836)
Co-authored-by: Philipp Moritz <pcmoritz@gmail.com>
2021-11-17 17:43:35 -08:00
gjoliver
724a140795
[rllib] Make sure json can serialize result dict (#20439)
We may have fields in the result dict that are or None.
Make sure our results are json serializable.
2021-11-17 10:27:00 -08:00
xwjiang2010
03aec4e04a
[Tune] Remove runner argument in start_trial. (#20464)
This internal legacy argument was not used by any code.
2021-11-17 16:59:57 +00:00
Alex Wu
d1c624901f
Add hiredis dependency on supported platforms (#20437)
<!-- Please add a reviewer to the assignee section when you create a PR. If you don't have the access to it, we will shortly find a reviewer and assign them to your PR. -->

## Why are these changes needed?

This PR adds the hiredis dependency for non M1 machines. 

This removes the `redis < 4.0` pin.

Since hiredis doesn't have M1 mac wheels yet, so users there will have extra warning messages in their outputs if they use redis 4.0.
<!-- Please give a short summary of the change and the problem this solves. -->

## Related issue number

<!-- For example: "Closes #1234" -->

## Checks

- [ ] I've run `scripts/format.sh` to lint the changes in this PR.
- [ ] I've included any doc changes needed for https://docs.ray.io/en/master/.
- [ ] I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
- Testing Strategy
   - [ ] Unit tests
   - [ ] Release tests
   - [ ] This PR is not tested :(


Co-authored-by: Alex Wu <alex@anyscale.com>
2021-11-17 07:40:58 -08:00
Devon Proctor
dba84546d9
[GCP] Filter GCP TPUs by cluster name, matching behavior for GCP compute nodes. (#20311)
Ray currently does not filter GCP TPU nodes based on the cluster name, resulting in conflicts when multiple ray clusters are running on the same GCP account.

This change updates the TPU behavior to match the GCP compute node behavior, i.e. filtering to TPU nodes for the current cluster.
2021-11-17 01:39:58 -08:00
Simon Mo
18d605fa7c
[Serve] Add experimental CLI for serve deploy (#20371) 2021-11-16 20:22:09 -08:00
Antoni Baum
20fc9f907d
[CI] Fix tune dashboard, increase timeout for test_commands (#20453) 2021-11-16 17:52:17 -08:00
Simon Mo
5fccad4cc9
[Serve] Add experimental pipeline docs (#20292) 2021-11-16 16:13:55 -08:00
Kai Fricke
05d21497db
[rllib/tune] Fix durable trainable in trainer template, add release test (#20422) 2021-11-16 20:52:42 +00:00
Edward Oakes
48b87d5830
[serve] Fix actor resources error in failure test (#20400) 2021-11-16 12:24:54 -08:00
Eric Liang
12a4489e30
Revert "[core] Nested task support via task depth + backpressure" (#20438)
Reverts ray-project/ray#17887

This causing several tests to be flaky (test_multinode_failures, test_virtual_actor, test_component_failures_2).
2021-11-16 11:14:45 -08:00
Simon Mo
5f2b035bba
Pin Redis version to < 4.0.0 (#20430)
<!-- Please add a reviewer to the assignee section when you create a PR. If you don't have the access to it, we will shortly find a reviewer and assign them to your PR. -->

## Why are these changes needed?

This pin is needed to fix `test_output` on master, which broke when 4.0.0 was released. 

It may also fix the windows build (unsure). 

## Related issue number

<!-- For example: "Closes #1234" -->

## Checks

- [ ] I've run `scripts/format.sh` to lint the changes in this PR.
- [ ] I've included any doc changes needed for https://docs.ray.io/en/master/.
- [ ] I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
- Testing Strategy
   - [ ] Unit tests
   - [ ] Release tests
   - [ ] This PR is not tested :(
2021-11-16 10:48:36 -08:00
Alex Wu
8f21cdbddb
Revert "[dependencies] Use redis[hiredis] in setup.py" (#20435)
Reverts ray-project/ray#20423

`hiredis` will break our M1 support right now.
2021-11-16 10:46:22 -08:00
Kai Fricke
6ec256122c
[dependencies] Use redis[hiredis] in setup.py (#20423)
This is recommended by `redis-py` and as a side effect gets rid of a current error in `test_output` for the minimal dependency test (e.g. https://buildkite.com/ray-project/ray-builders-branch/builds/4746#7444b5d0-87c3-4998-b722-1cbc2d9fe7e3)
2021-11-16 10:25:36 -08:00
Antoni Baum
3f9ded55f7
[tune] Merge Analysis into ExperimentAnalysis (#20197)
Co-authored-by: Kai Fricke <kai@anyscale.com>
2021-11-16 16:47:12 +00:00
Antoni Baum
c097f64c79
[tune] Drop 0 value keys from PGF (#20279)
Co-authored-by: Kai Fricke <krfricke@users.noreply.github.com>
Co-authored-by: Kai Fricke <kai@anyscale.com>
2021-11-16 16:44:09 +00:00
Amog Kamsetty
4f88796d5a
[Train] Move to beta (#20378) 2021-11-16 08:19:30 -08:00
Kai Fricke
8a6c936aa8
[tune] Fix syncer=None not disabling trial-to-driver syncing (#20418) 2021-11-16 14:36:23 +00:00
Sven Mika
f82880eda1
Revert "Revert [RLlib] POC: Deprecate build_policy (policy template) for torch only; PPOTorchPolicy (#20061) (#20399)" (#20417)
This reverts commit 90dc5460d4.
2021-11-16 14:49:41 +01:00
Eric Liang
a1d78088e6
[Hotfix] Fix flaky test_basic_workflows_2
This test seems very flaky after the nested tasks PR merged. I think it's since the test is broken, and we made one of the branches more likely.
2021-11-16 01:11:36 -08:00
Yi Cheng
a4e187c0e7
[gcs] Update function table to use internal kv (#20152)
## Why are these changes needed?
This is a part of redis removal. This PR remove redis kv in function table. 
rpush related code is not updated in this PR.

## Related issue number
2021-11-15 23:34:41 -08:00
Eric Liang
460cf86858
Split blocks automatically into 500MB chunks on file read and transformation (#20235)
This PR adds support for automatic block splitting on read and map transforms, to keep block size bounded to ~500MiB. This avoids potential OOM situations where a map task may consume too much intermediate Python heap memory, or too much object store shared memory for one block.
2021-11-15 22:25:11 -08:00
Siyuan (Ryans) Zhuang
3e9cd4248e
[workflow] Refactoring workflow to make it easier to follow the logic (#20349)
* update

* cleanup
2021-11-15 21:02:33 -08:00
Stephanie Wang
31eb385426
Revert "Revert "Revert "[core] Fail objects when pull/reconstruction hangs (#19789)" (#19904)" (#20120)" (#20406)
This reverts commit 0f57a9a105.
2021-11-15 20:36:22 -08:00
Alex Wu
75f421a3fd
[core] Nested task support via task depth + backpressure (#17887)
* needs depth

* depth

* .

* .

* .

* lint

* .

* lint

* fix tests

* .

* .

* .

* .

* cleanup

* .

* tests

* .

* more tests

* fix rest(?) of tests

* cleanup

* .

* .

* .

* .

* lint

* fix test basic

* fix ref counting?

* cleanup

* lint

* .

* pass dataset pipeline test

* .

* stephanie's comments + fix tests

* cleanup

* cleanup

* minor cleanup, then fix merge conflict

* lint

* cast

* feature flag

* lint

* lint

* refactor

* needs cleanup

* should pass

* lint

* .

* .

* .

* work?

* .

* works?

* lint

* work?

* .

* fix cpp tests

* .

* .

* split test

* fix windows?

* fix windows?

* fix test + check

* .

* all passing

* tests

* lint

* cleanup

* .

* most stephanie ocmments

* lint

* remove timer

* .

* allowed - capacity

* .

* everything except barrier

* addd guard

* works

* lint

* works?

* debug string

* last comment?

* short comments

* most comments

* lint

* done?

* done?

* .

* .

* .

* .

* done?

* done?

* update

* lint

* fix last test

* .

* .

* .

* .

* .

* .

* debug

* .

* .

* .

* .

* fix type

* .

* .

* cleanup

Co-authored-by: Alex Wu <alex@anyscale.com>
2021-11-15 17:39:50 -08:00
Amog Kamsetty
90dc5460d4
Revert "[RLlib] POC: Deprecate build_policy (policy template) for torch only; PPOTorchPolicy (#20061)" (#20399)
This reverts commit 5b1c8e46e1.
2021-11-15 16:11:35 -08:00