Fairshare Scheduling
The priority of jobs is regulated by fairshare scheduling. Whether job A is started before job B depends mainly on two factors:
- when the job was submitted
- how many shares are available to the user
In general, a job which is submitted to the batch system before another will also be started before the other. However, a user consumes so-called shares when his or her job runs based on the amount of CPU time, GPU time and RAM used. The more shares a user has, the more his or her jobs will be preferred. As time passes, a user is given new shares. In this manner, equitable access to resources is achieved.
This mechanism only plays a role when jobs compete for resources. If enough resources are available, a job will also be started, even if the owner no longer has any shares.