[GE users] Fairness sharing.

templedf dan.templeton at sun.com
Fri Feb 5 15:23:18 GMT 2010


How about instead of the script and files, you just remove the default 
from the complex and add "-soft -l jb=1" to the sge_request file?  It's 
simpler, and I think it should work.

Daniel

On 02/04/10 15:23, reuti wrote:
> Hi,
>
> Am 04.02.2010 um 18:31 schrieb jesperkrogh:
>
>    
>> I would like implement the following:
>>
>> The first 20 jobs of each user, should run at "highest" priority. So
>> that if multiple users are using the cluster, one submitting at a high
>> priority cannot grab "all", cpus.
>>
>> But if there is only one user.. that person is allowed to consume
>> everything.
>>
>> Is that possible.
>>      
> some kind of. We will need to setup:
>
> - the global limit in the scheduler configuration can be reset to 0
> (i.e. the maxujobs entry in case you adjusted this).
>
> - one complex for the jobs:
>
> jobs                jb         INT<=      YES
> JOB        1        1000
>
> - give unlimited resources for jobs: $ qconf -me global
> ...
> complex_values        jobs=999999
> ...
>
> - one RQS like: $ qconf -arqs
>
> {
>      name         joblimits
>      description  Setup job limits
>      enabled      TRUE
>      limit        name standard users {*} to jobs=20
> }
>
> This must also be present in two files (FALSE and TRUE only changed):
>
> ~/joblimits_unlimited =>
> {
>      name         joblimits
>      description  Setup job limits
>      enabled      FALSE
>      limit        name standard users {*} to jobs=20
> }
>
> ~/joblimits_default =>
> {
>      name         joblimits
>      description  Setup job limits
>      enabled      TRUE
>      limit        name standard users {*} to jobs=20
> }
>
> As it's static, a cron job which can even run under the SGE-Admin
> account (crontab -e) will check the every 5 minutes:
>
> SHELL=/bin/sh
> # uncomment the following line if it works
> # MAILTO=""
> */5 * * * * ~/adjust_joblimits.sh
>
> with this script:
>
> #!/bin/sh
> . /usr/sge/default/common/settings.sh
> PENDING_OTHERS=`qstat -u "*" -s p | awk 'BEGIN {FIRSTRUN=1;PENDING=0}
> (NR>= 3) {if (FIRSTRUN) {USER=$4; FIRSTRUN=0} else if (USER != $4)
> {PENDING=1;exit}} END {print PENDING}'`
> if [ "$PENDING_OTHERS" -ne 0 ]; then
>       qconf -Mrqs ~/joblimits_default joblimits
> else
>       qconf -Mrqs ~/joblimits_unlimited joblimits
> fi
>
> (Only drawback is, that jobs on hold also count as pending. If there
> are hold jobs by other users, you would need to remove the jobs you
> get with `qstat -u "*" -s h` from the list you get with `qstat -u "*"
> -s p`. AFAIK there is no option to get pending jobs except the hold
> ones.)
>
> -- Reuti
>
>
>
>    
>> -- 
>> Jesper
>>
>> ------------------------------------------------------
>> http://gridengine.sunsource.net/ds/viewMessage.do?
>> dsForumId=38&dsMessageId=243282
>>
>> To unsubscribe from this discussion, e-mail: [users-
>> unsubscribe at gridengine.sunsource.net].
>>      
> ------------------------------------------------------
> http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&dsMessageId=243353
>
> To unsubscribe from this discussion, e-mail: [users-unsubscribe at gridengine.sunsource.net].
>

------------------------------------------------------
http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&dsMessageId=243516

To unsubscribe from this discussion, e-mail: [users-unsubscribe at gridengine.sunsource.net].



More information about the gridengine-users mailing list