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

Job Priority Boost #529

Open
lithorus opened this issue Dec 13, 2021 · 1 comment
Open

Job Priority Boost #529

lithorus opened this issue Dec 13, 2021 · 1 comment

Comments

@lithorus
Copy link
Member

lithorus commented Dec 13, 2021

We've found ourselves needing some way of being able to boost priority on some jobs while still maintaining user averaging.

Some background :
We currently have a lot of shots that are ongoing and we find, that we need to be able to prioritize some shots more than others. One way to do this is to create branches for each project / sequence / shot. However this will probably be very messy and impossible to get a good overview. Also we would effectively lose user averaging since we have to switch to job averaging.

So my suggestion is to introduce a special "priority boost" multiplier to each job.

The current user averaging is like this :

3 jobs running :
jobA (10 tasks running)
jobB (10 tasks running)
jobC (10 tasks running)

need = pow( 1.1, priority) / (running_tasks_num + 1.0)
need = pow( 1.1, 99) / (30 + 1.0) = 404.123529027

If there was a way to have running_tasks_num be affected by a boost :

3 jobs running :
jobA (10 tasks running) / 1 (priority boost)
jobB (10 tasks running) / 2 (priority boost)
jobC (10 tasks running) / 1 (priority boost)

need = pow( 1.1, priority) / (running_tasks_num*priority_boost + 1.0)
need = pow( 1.1, priority) / (10/1.0 + 10/0.5 + 10/1.0 + 1.0) = 481.839592301

This way you would still have user averaging and jobs with this "priority boost" would not cost as much when running.

It could also be a "Job Cost" parameter which would at 0.0 cost nothing and would effectively ignore user averaging completely (also needed sometimes).

And I guess it would also make sense to have this on the Branches, so you for instance could have project branches (if you use that) which by default have higher priority.

@timurhai
Copy link
Member

Hi!
We are using special branch(es) for it.
You can create some "boosted" branch and admin can move some special jobs there.
May be your situation can be already solved by this method?

But the idea to have some other parameter that affects priority for special jobs, but keeping user averaging can be useful.

@timurhai timurhai reopened this Feb 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants