[docs] Add a scheduling overview with defaults to the Ray Core scheduling page - #65264
Draft
dstrodtman wants to merge 2 commits into
Draft
[docs] Add a scheduling overview with defaults to the Ray Core scheduling page#65264dstrodtman wants to merge 2 commits into
dstrodtman wants to merge 2 commits into
Conversation
…ling page The scheduling page carried a standing note that it lacked an overview of the features and configs that affect scheduling, along with their default values. Most of these defaults are already documented, but they're spread across the resources, labels, and placement group pages, so a reader has no single place to see what Ray does before any configuration. Add a "Scheduling at a glance" section that describes the two-step placement model and tabulates each control with its default, linking to the page that documents it rather than restating the mechanism. Also tabulate the three environment variables that tune the "DEFAULT" strategy. RAY_scheduler_top_k_absolute wasn't previously documented with its value; it defaults to 1 per src/ray/common/ray_config_def.h. Call out that the non-zero actor scheduling default means an actor needs a node with a free CPU to start, which is a recurring source of confusion. Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
Three fixes to the scheduling overview section: Data locality was described as breaking ties for tasks. The page's own 'DEFAULT' section states that locality takes precedence over the strategy's utilization scoring, so Ray prefers the locality node regardless of its utilization. Tie-breaking understated it. The gang placement row referred to bundles being scheduled independently, but bundles only exist inside a placement group, so the sentence described something that can't happen. It now refers to tasks and actors. Clarified which two actor defaults the following paragraph refers to, rather than pointing vaguely at the table above it. Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
doc/source/ray-core/scheduling/index.rstcarried a standing note that the page lacked an overview of the features and configs that affect scheduling, along with their default values.Most of those defaults are already documented, but they're spread across the resources, labels, and placement group pages, so a reader has no single place to see what Ray does before any configuration.
This PR adds a "Scheduling at a glance" section that:
"DEFAULT"strategy.It removes the standing note, since this addresses it. Happy to restore it if maintainers consider the gap only partly closed.
One genuine addition:
RAY_scheduler_top_k_absolutewas named on the page without its value. It defaults to1persrc/ray/common/ray_config_def.h.Related issues
None. The work is driven by the in-file note.
Additional information
Not a duplicate
Searched open PRs against
ray-project/rayfor "scheduling overview" and related area keywords. Nothing open touches this page.Testing
Every default in the new tables was verified against source, not against other docs pages:
src/ray/common/ray_config_def.h:scheduler_spread_threshold0.5,scheduler_top_k_fraction0.2,scheduler_top_k_absolute1.python/ray/actor.py. A bare actor takes the simple branch, giving it 0 lifetime CPU and anactor_method_cpuof 1. Because method CPU is 1,actor_placement_resourcesbecomes the lifetime resources with CPU incremented by 1. That's what makes "1 CPU for scheduling, 0 for running" true, and it's why the constants alone read as if they say the opposite.scheduling/resources.rst; the default labels come fromscheduling/labels.md.:ref:and:doc:target in the new section was verified to exist by grepping for its label definition.Other checks:
vale doc/source/ray-core/scheduling/index.rst— the added content introduces no new class of Vale error. The message-set diff against the pre-change file is empty.pre-commit runon the staged file — every hook reports "no files to check".Self-review findings already fixed
A critical pass before requesting review caught three problems in the first draft:
"DEFAULT"section says locality takes precedence over utilization scoring, so Ray prefers the locality node regardless of how utilized it is. "Tie-breaking" understated it.AI assistance
AI assistance was used to draft this section. Every default stated was read out of the source tree rather than recalled. It still needs a final human review pass, which is why this is opened as a draft.