mirror of
https://github.com/wassname/ray.git
synced 2026-08-19 12:30:27 +08:00
[xray] raylet scheduling mechanism with a simple spillback policy (#2749)
## What do these changes do? * distribute load and resource information on a heartbeat * for each raylet, maintain total and available resource capacity as well as measure of current load * this PR introduces a new notion of load, defined as a sum of all resource demand induced by queued ready tasks on the local raylet. This provides a heterogeneity-aware measure of load that supersedes legacy Ray's task count as a proxy for load. * modify the scheduling policy to perform *capacity-based*, *load-aware*, *optimistically concurrent* resource allocation * perform task spillover to the heartbeating node in response to a heartbeat, implementing heterogeneity-aware late-binding/work-stealing.
This commit is contained in:
committed by
Robert Nishihara
parent
90ae8f11df
commit
de047daea7
+12
-2
@@ -459,11 +459,21 @@ def test_nondeterministic_task(ray_start_reconstruction):
|
||||
for error in errors)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def ray_start_driver_put_errors():
|
||||
plasma_store_memory = 10**9
|
||||
# Start the Ray processes.
|
||||
ray.init(num_cpus=1, object_store_memory=plasma_store_memory)
|
||||
yield plasma_store_memory
|
||||
# The code after the yield will run as teardown code.
|
||||
ray.shutdown()
|
||||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
os.environ.get("RAY_USE_NEW_GCS") == "on",
|
||||
reason="Failing with new GCS API on Linux.")
|
||||
def test_driver_put_errors(ray_start_reconstruction):
|
||||
_, _, plasma_store_memory, _ = ray_start_reconstruction
|
||||
def test_driver_put_errors(ray_start_driver_put_errors):
|
||||
plasma_store_memory = ray_start_driver_put_errors
|
||||
# Define the size of one task's return argument so that the combined
|
||||
# sum of all objects' sizes is at least twice the plasma stores'
|
||||
# combined allotted memory.
|
||||
|
||||
Reference in New Issue
Block a user