Commit graph

5935 commits

Author SHA1 Message Date
runedog48
c432815b10
Fix argument typo in post_mortem method (#20871) 2021-12-03 10:27:12 -08:00
xwjiang2010
368da1742b
[tune] Enforce one future at a time for any given trial at any given time. (#20783)
Also enforce disabling (instead of allowing user to override this) buffer training when checkpoint_at_end is used.
2021-12-03 08:14:12 -08:00
xwjiang2010
205d1e9d1f
remove on_pause/on_unpause (#20822) 2021-12-03 08:13:17 -08:00
Matti Picus
442943572b
DOC, BUILD: limit bazel resource usage with BAZEL_LIMIT_CPUS and document it (#20845)
So I have a AMD machine with many cores and 32GB of memory. When I do `pip install -e .`, my machine crashes since bazel tries to use all the cores, but quickly runs out of memory. It seems there is no native way to set environment variables to tell bazel to limit its resource consumption, but there is a `--local_cpu_resources` command-line option.

This PR exposes that to the `pip install` via an environment variable. I also went through the setup.py and documented all the environment variables I could find.
2021-12-02 16:39:36 -08:00
mwtian
c01fa39d84
[Cleanup] delete remaining protos related to ObjectLocation in GCS (#20823)
Object metadata are fully managed by workers now, so the related protos and logic in GCS are obsolete. Most of the logic has been removed in https://github.com/ray-project/ray/pull/19963. This PR removes some remaining obsolete protos.
2021-12-02 15:24:43 -08:00
WanXing Wang
a4495941c2
[Core] Support back pressure for actor tasks (#19936)
Support back pressure in core worker.
Job config added for python worker and java worker.
2021-12-02 14:41:30 -08:00
xwjiang2010
e8ce1edfdc
[tune] move on_no_available_trials to a subclass under runner (#20809)
Separates out warning logic to a different submodule.
2021-12-02 12:54:45 -08:00
architkulkarni
725480ad7e
Revert "[runtime_env] Allow working_dir and py_module to be Path type (#20810)" (#20852)
This reverts commit fb3d57fb71.
2021-12-02 10:17:16 -08:00
Chu Xiangyang
93732231cb
[Core] Update job id to hex in JOB_LOG_PATTERN (#20612) (#20816)
* [Core] Update job id to hex in JOB_LOG_PATTERN (#20612)

* Add test to log pid with hex job id
2021-12-02 16:47:26 +09:00
mwtian
8716ae9fdc
[Core][Pubsub] deflake test_gcs_pubsub (#20812)
In `test_gcs_pubsub.py`, ensure subscribers subscribe before data is published to the channel.
2021-12-01 19:11:18 -08:00
mwtian
b3264138b5
[cli] Use 8 Ansi colors for ray command output (#20485) 2021-12-01 16:44:52 -08:00
iasoon
7546ea452f
[serve] Catch errors caused by bad deployment configurations (#20617) 2021-12-01 17:20:25 -07:00
hckuo
fb3d57fb71
[runtime_env] Allow working_dir and py_module to be Path type (#20810) 2021-12-01 16:39:39 -07:00
Antoni Baum
da57c99f47
[tune] Add set_max_concurrency to Searcher API (#20576)
Adds a set_max_concurrency method to the Searcher API. This method allows for the ConcurrencyLimiter to override the max_concurrency value on searchers with custom internal logic for limiting concurrency (atm. SigOpt and HEBO). This PR also changes the initialisation of SigOpt and HEBO optimisers to happen on set_search_properties instead of in the constructor, so that the new max_concurrency is respected.

Furthermore, this PR breaks up test_tune_restore.py into test_tune_restore_warm_start.py and test_tune_restore.py to deal with a timeout, and ensures that the automatic application of ConcurrencyLimiter in tune.run doesn't override a user-defined ConcurrencyLimiter.
2021-12-01 13:07:48 -08:00
mwtian
0467bc9df5
[Core][Pubsub][Importer] GCS pubsub for function manager & importer (#20804)
This PR allows using Ray pubsub for notifying worker importers that a new function / actor class needs to be imported.
2021-12-01 10:44:50 -08:00
xwjiang2010
8c0bf41b17
[tune] clean up start_trial API. (#20796) 2021-12-01 08:46:22 -08:00
Stephanie Wang
162cc9e6bd
Add chaos test for shuffle (#20657)
Adds a working failure test for streaming and non-streaming shuffle, without lineage reconstruction. This does a few things.

Test improvements:
- modifies AutoscalingCluster to allow passing an idle node timeout (the default is very low)
- some small improvements to the NodeKiller actor to hopefully improve flakiness.

Shuffle fixes:
- modifies shuffle tracker to wait on futures instead of having tasks signal. During failures, tasks may never signal the tracker, so we can't rely on these to track progress.

Core fixes:
- raylet will exit immediately if it receives the Shutdown RPC with graceful=False - there was a bug here where it's supposed to exit after replying to the client, but the gRPC server goes down for an unknown reason and the client reply is never sent
- On reference deletion, the owner now publishes an additional message to subscribers that the object has been deleted. Previously, this was causing a hang in streaming shuffle because the raylets pulling an object subscribed after the object was already deleted, so they never received the error signal.
2021-11-30 15:24:09 -08:00
Alex Wu
9a0e67cd7e
Remove duplicate test (in test_component_failure_2) (#20798)
test_component_failure_2::test_worker_failed is a duplicate of test_mulitnode_failure::test_worker_failed
2021-11-30 12:49:43 -08:00
Siyuan (Ryans) Zhuang
3eb76466a0
[workflow] workflow.wait() feature (#20163)
This PR implements `workflow.wait()`. When combined with checkpointing, it allows skipping sync & checkpointing of unfinished workflows.
2021-11-30 12:30:28 -08:00
Clark Zinzow
adbcc4f79a
[Datasets] Fix boundary sampling concatenation. (#20784)
In `sample_boundaries`, naive concatenation with `np.concatenate()` doesn't work when the single-column sample blocks have varying lengths (e.g., when the original dataset had non-uniform blocks). This PR fixes this by delegating concatenation and NumPy array conversion to the block builder and block accessor, respectively.
2021-11-30 12:21:16 -08:00
mwtian
95c26eec26
[Core][Pubsub][Logging 2/n] Use GCS pubsub for logs (#20492)
Using Ray pubsub for publishing and subscribing logs via GCS, from Python worker, log importer, dashboard and unit tests.

This change is guarded behind the RAY_gcs_grpc_based_pubsub feature flag.
2021-11-30 12:00:44 -08:00
Jiajun Yao
e3e2739164
Exit worker when parent raylet dies (#20777)
* Exit worker when parent raylet dies

* Exit worker when parent raylet dies

* Exit worker when parent raylet dies
2021-11-30 10:04:11 -08:00
matthewdeng
0de105d42f
[train] update Trainer._is_tune_enabled to work when Tune is not installed (#20767) 2021-11-29 20:08:51 -08:00
xwjiang2010
d697c13bda
[tune] Deflake test_tune_restore.py (#20776)
By switching to on_step_end and keeping track of the number of trials we avoid race conditions in this test suite.
2021-11-29 16:38:46 -08:00
Amog Kamsetty
99ed623371
[Release] Use NCCL backend for release tests (#20677)
* use nccl for release tests

* link issue
2021-11-29 12:42:13 -08:00
mwtian
a4d3898159
[Core][Pubsub][Logging 1/n] add logging support to GCS pubsub in Python (#20604)
This PR adds support for publishing and subscribing to logs in Python via GCS pubsub. It also refactors the Python threaded subscriber to support subscribing and calling `close()` from multiple threads.

We can also move tests and logging support to another PR, but it will make the purpose of the refactoring seems less obvious.
2021-11-29 11:26:01 -08:00
Antoni Baum
aabe9229df
[CI] Make num_files optional for XGBoost test utils (#20761) 2021-11-29 09:35:52 -08:00
xwjiang2010
bf2c5f1417
[Tune] Start restricting TrialRunner/Executor interface exposures. (#20656)
Arbitrary API access is pretty rampant at the moment. It is pretty hard to correct it in one go. This is a necessary incremental step towards a cleaner API.
2021-11-29 08:13:18 -08:00
SangBin Cho
6649f078e5
[Internal Observability] Move debug_state.txt to the log dir + support gcs_server debug state (#20722)
Moving debug_state.txt to the log directory. This will help us finding debug_state.txt from the dashboard. See below.
Add debug_state_gcs.txt. This will display GCS' debug state. GCS will also dump debug state to the file every 10 seconds
For periodic printing of debug state, I made it happen every 1 minute. This is because every 10 seconds usually is very spammy.
2021-11-28 20:42:37 -08:00
xwjiang2010
96b44adf67
[Tune] Remove pg caching with fixes to pbt scheduler (#20403)
This reverts commit f13c2a5350.

Re-land remove PG caching logic.

As a result, pbt scheduler cannot stop and start trial within itself for weight transfer and perturbation now. So these are some changes to pbt scheduler:

1. the trial being perturbed is always left in a PAUSED state upon exiting on_trial_result. This is because instead of maintaining two separate paths for replacing a trial, we consolidate to always "stop" and "restore" and rely on reuse_actor as an optimization if available. (see 2)
2. consolidates pbt replacing a trial with reuse_actor.
3. introduces a NOOP scheduler decision to indicate that (pbt) scheduler has finished its interaction with executor and thus no decision is further needed in Tune loop.

Long term, we should control the interface between scheduler and executor. For example, on_trial_result taking in the whole runner is too much API exposure that we want to remove.
2021-11-26 15:54:45 +00:00
Qing Wang
55cb88f085
Add python unit test to make sure task in default group doesn't block others. (#20718)
Why are these changes needed?
This PR only adds a unit tests for Python concurrency group.

Related issue number
#20475
2021-11-26 21:10:49 +08:00
SangBin Cho
31f378e45a
[Part 2] Improve RayActorDiedError: Store why the actor is dead to the actor table. (#20528)
This PR includes the precise reason why actor is dead to `ActorTable`. The `death cause` stored in the table will be propagated to core worker through pubsub, so that core worker can eventually raise a good error message with metadata.
2021-11-25 04:39:02 -08:00
SangBin Cho
cd7a32f1a5
[Nightly test] Chaos test fixture (#20277)
This PR is mostly for implementing "fixture" for nightly test. Note that the current fixture implementation is not that great, and we can probably improve this in the future after refactoring e2e.py.
2021-11-24 17:13:29 -08:00
Eric Liang
75bd1fb01c
[data] Fix slow block evaluation when splitting is enabled (#20693)
This fixes slow lazy block evaluation by adding an explicit get_blocks() bulk method, and using that when-ever lazy iteration is not needed.

The root cause of the slowdown was because block splitting requires ray.get() during iteration over block refs, to materialize split blocks. However, this interferes with exponential rampup.
2021-11-24 15:25:54 -08:00
Gagandeep Singh
f22a24aca4
Replace time based seed generation with absl::BitGen and absl::Uniform (#20696) 2021-11-24 14:36:35 -08:00
Matti Picus
8299f94ab8
Fail calling Cluster() on windows, skip tests appropriately (#20172) 2021-11-24 13:40:59 -08:00
SangBin Cho
cc6dc4683f
Try deflaking worker capping on Windows (#20669) 2021-11-24 09:41:35 -08:00
Guyang Song
53630ee03b
Revert "Revert "[runtime env] redefine runtime env to protobuf"" and fix windows compiling (#20692)
- Fix windows compiling and revert https://github.com/ray-project/ray/pull/20641
- Seems the pr https://github.com/ray-project/ray/pull/20670 can solve the windows compiling issue.
2021-11-24 09:01:01 -08:00
Yihong Chen
05a7d1f34e
[serve] Fix autoscaling config is not loaded when calling options() (#20613) 2021-11-24 09:14:28 -06:00
Antoni Baum
a8d7897a56
[CI] Modify remote wrapper in XGBoost-Ray client test (#20544)
Instead of wrapping the whole training run in a remote call, we only query the files on the node in a remote call. XGBoost-Ray is then started from the local node.
2021-11-24 10:27:17 +00:00
Kai Fricke
7446269ac9
[tune/rllib] Fix tune cloud tests for function and rllib trainables (#20536)
Fixes some race conditions and softens some constraints around checkpoint numbers.
2021-11-24 09:29:12 +00:00
SangBin Cho
414737b7c7
[Core] Raise an exception on Ray version mismatch (#20179)
Add unit tests that verify Ray version mismatches
2021-11-23 21:25:58 -08:00
Alex Wu
b616aecd89
[ci][windows] Skip test_worker_capping.py::test_zero_cpu_scheduling (#20605)
1 second doesn't seem to be a long enough timeout for test_worker_capping.py::test_zero_cpu_scheduling on windows.
2021-11-23 20:21:08 -08:00
Eric Liang
163620ba94
[data] Make block splitting feature flagged off by default (#20660)
block splitting and makes it off by default. This makes it easier to debug problems potentially related to this feature. Criteria for enabling by default:
- We're confident all nightly tests pass (currently, there may be an issue with large-scale groupby with block splitting).
- We're confident lineage-based reconstruction can work with block splitting.
2021-11-23 19:46:18 -08:00
iasoon
186c16c50e
[serve] Don't create placement group for deployment with no resources (#20471) 2021-11-23 21:27:43 -06:00
Alex Wu
af9f1ef4dc
Pin redis back to redis >= 3.5.0 (#20661)
With the release of redis 4.0.2, there are no more warning message issues. Therefore, we no longer need to pin a maximum version of redis.
2021-11-23 15:51:20 -08:00
Amog Kamsetty
4484be6c96
[Train] Fix test_callback (#20603)
* fix

* Update test_callbacks.py
2021-11-23 09:10:47 -08:00
xwjiang2010
2b5ad4a3c0
[tune] TrialExecutor should not take in Runner interface. (#20655) 2021-11-23 16:54:47 +00:00
xwjiang2010
e24c1dccb0
[Tune] Remove unnecessary argument in update_last_result. (#20653) 2021-11-23 16:53:28 +00:00
Eric Liang
80d9476c50
Deflake test_multi_node_3.py::test_calling_start_head (#20652)
This test seems to be flaking since ray stop sometimes fails when sending SIGTERM only. While that's desirable to fix, the test is still testing the intended behavior even if we send SIGKILL.
2021-11-22 19:01:04 -08:00