Support Multiple Queue Dequeue Strategies to Improve Task Scheduling Efficiency
What is the problem you're trying to solve
Description:
In Volcano, each job submitted to a Queue is assigned a priority, where a higher number indicates higher priority. When multiple jobs or instances simultaneously request computing resources, they form a waiting queue based on their priorities until resources become available.
To improve resource utilization efficiency, it would be beneficial if Volcano could support multiple dequeue strategies at the queue level, configurable by users. Different strategies would directly affect the execution order of jobs but should not impact jobs that have already started running.
Proposed Dequeue Strategies
-
FIFO Strategy
- The scheduler repeatedly tries to dequeue the first task in the queue.
- If the first task cannot be dequeued (e.g., insufficient resources), it will keep retrying without skipping to the next task.
-
Traversal Strategy
- If the first task cannot be dequeued, the scheduler skips it and attempts to dequeue the next jobs in the queue sequentially.
Describe the solution you'd like
We propose adding a mechanism to configure the dequeue strategy for each Queue.
This could be achieved by:
- Introducing a new field in the Queue CRD, or
- Using an annotation on the
Queueobject.
The scheduler would then interpret this configuration and apply the corresponding dequeue strategy when managing tasks within the queue.
I'd like to do the PR.
Additional context
No response
https://help.aliyun.com/zh/pai/user-guide/scheduling-policies
Great feature!
#4690, #3950 Also want FIFO dequeue strategies