Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is is possible that volcano can schedule top priority jobs in all queues first #3403

Open
molei20021 opened this issue Apr 12, 2024 · 13 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@molei20021
Copy link

What would you like to be added:

I would like to add some config in scheduler to specify the priority range of jobs that volcano can try schedule these jobs first in all queues

Why is this needed:

We need multiple queue to limit the quota for different project, we also need to schedule the most important jobs first in these projects. We see in allocate action of volcano, jobs of lower priority in queue A may be try schedule earlier than jobs of higher priority in queue B if the priority of queue A is higher than the priority of queue B.

@molei20021 molei20021 added the kind/feature Categorizes issue or PR as related to a new feature. label Apr 12, 2024
@lowang-bh
Copy link
Member

if the priority of queue A is higher than the priority of queue B

queue's priority is dynamic changed and depend on the resource usage of all jobs in that queue. Once a job of a queue allocated, queue will put back to priority-queue and re-adjust the queue priority.

But now there is a litter issue that queue is put back before a job's resource allocating. I will fire a issue.

@robscc
Copy link

robscc commented Apr 12, 2024

Will u add some plugable function for sorting queue priority? In my case I would check whether the queue have the emergency task need be scheduled first

@molei20021
Copy link
Author

#3405
I want to add a schedulefail event to notify my custom plugin to realize schedule top priority jobs in all queues first

This was referenced Apr 18, 2024
@molei20021
Copy link
Author

Background:
I want to use queueorder plugin to realize global priority order for some special tasks. For example tasks with priority larger than 500 will be tried to schedule first. If all the special task is tried to schedule in queue, then the priority of queue will be set low. So the information of whether tasks is tried to schedule in different actions is important to queueorder plugin. But volcano will not tell such information to the plugin currently. So I add an event to tell the plugin such information.

@googs1025
Copy link
Contributor

@molei20021 I'm not entirely clear why the queueorder plugin is necessary if the scheduler already dequeues tasks based on their priority. Additionally, I don't understand the need for event notification plugins and why they are required.

@Monokaix
Copy link
Member

Hi, I didn't notice the pr you submitted has relationship with queue order, maybe you can describe your needs in detail and doc a design first: )

@molei20021
Copy link
Author

For example, there are queue1(task1 > task2 > task3 > task4) and queue2(task5 > task6 > task7 > task8). I want task1 and task5 to try schedule first global. So I need the information of whether task1 and task5 has tried to schedule In queue order plugin. Even if queue1 > queue2 and task1 is scheduled, I will force make queue2 > queue1 to schedule task5. The information of whether task is processed by action can by notified by event I added.

@googs1025
Copy link
Contributor

The queue with a higher priority should be dequeued first, so why does task 5 need to be scheduled first?

@googs1025
Copy link
Contributor

This seems to deviate from the original usage and design philosophy of the queue.

@molei20021
Copy link
Author

This seems to deviate from the original usage and design philosophy of the queue.

task5 is the top important task, i do not want it to be effected by the priority of queue

@googs1025
Copy link
Contributor

So why are you placed in the low priority queue? this seems unreasonable

@molei20021
Copy link
Author

So why are you placed in the low priority queue? this seems unreasonable

The priority of the queue is determined by the share of queue, which will be affected by the request of tasks in the queue. It can not be set directly.

@Monokaix
Copy link
Member

Monokaix commented May 8, 2024

Background: I want to use queueorder plugin to realize global priority order for some special tasks. For example tasks with priority larger than 500 will be tried to schedule first. If all the special task is tried to schedule in queue, then the priority of queue will be set low. So the information of whether tasks is tried to schedule in different actions is important to queueorder plugin. But volcano will not tell such information to the plugin currently. So I add an event to tell the plugin such information.

Why does volcano should tell plugin event? I think add some switch in framework is better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

5 participants