Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Job scheduling efficiency improvements

Open
#77 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
python
Domain
tooling

Research direction

No file, test, or entry point is named. Start by locating the scheduler used for OpenTitan nightly and weekly regressions, then separate the unchecked goals into independently scoped work. Done would require an agreed scope and acceptance criteria for schedule persistence, time- or resource-aware limits, or license-aware scheduling.

Written by the indexing model from the issue text.

Description

The nightly and weekly regressions for OpenTitan take significant resources to run. It is helpful to have more flexibility in the scheduler so that we can make better use of those resources.

Some ideas:

  • Test ordering - for the nightly regression runs most of the tests are complete in the first hour or so. By starting the longest running tests first and infilling with shorter running tests we can make the overall regression run time shorter, but keeping our scheduling slots busy.
  • Split run schedule
    • Generate a schedule and save to disk
    • Restore the schedule and run it
    • Restore the schedule and run a subset - potentially on a different machine
    • Restore a schedule and based on the working files resume a WIP run
  • More refined max parallel job control
    • Tool specific max parallel - different tools have different resource requirements so it's appropriate to have different limits proportional to the resource usage
    • Time based job control - it's common to run tests overnight/weekends when there may less contention of resources (compute or licenses). However jobs may have to be stopped if they don't finish within the expected timeslot if they are starving resources from other users. It would be useful to have the ability to set time dependent resource usage limits, so big jobs can be started any time and make use of the available resources at the time.
    • License aware scheduling - periodically query the license server so that the number of parallel jobs can be dynamically changed to reflect the currently available licenses. Avoiding starving other users, while making more efficient use of licenses.
    • General resource aware scheduling - periodically poll an external service to know how much resource is required for each job. This mechanism could be used for license server query, but also potentially other things like the machines memory and CPU usage.
Dominant language
Python
Stars
14
Forks
21
Avg merge
3d 11m
Merged PRs (30d)
5

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from lowRISC/dvsim

All issues in lowRISC/dvsim

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.