[GE users] Scheduling question

Reuti reuti at staff.uni-marburg.de
Wed Dec 7 20:20:03 GMT 2005


Am 07.12.2005 um 20:14 schrieb Goncalo Borges:

> Dear All,
> Maybe you can help me and advice me with the following situation:
> Imagine that I have two execution hosts, each one owned by two
> different groups. If the machines are not loaded, any user from
> any of the two groups can run jobs in both machines.
> Now imagine that at a given time, a user from group A submits 4 jobs:
> 	- one will run on machine owned by group A;
> 	- one will run on machine owned by group B;
> 	- The other two will be on hold.
> Some time later, a user from group B submits a job. I would like to  
> know
> if the following situation is possible with SGE, without any  
> further input
> (priority, deadtime, etc...) from the user or administrator:
> 	- If the machine from group A is the first one to become
>         available, one of the two jobs from user A which were on
>         hold must pass to the running status in that machine.
> 	- If the machine from group B is the first one to become
>         available, the job from user B must pass to the run status
> 	in that machine, although there are two pending jobs from
>         user A waiting for a longer time.
> This situation is somehow a pre-requisite in my home institute.
> Different groups contribute to a global computing center. A given
> group doesn't mind "borrowing" some machines to other group if they
> are not being used. However, starting from the moment they submit
> jobs, they want to have full priority on the machines they own.

if you can do this all by hand as admin, you just need:

- define two user_lists groupA and groupB
- 2 queues on each host and by setting the user_lists: one for group  
A, one for group B on each host only.
   hostAgroupA = group A
   hostAgroupB = group B    ----+---- These two are the only ones to  
be disabled by the admin
   hostBgroupA = group A    ----+
   hostBgroupB = group B

- the total number of slots needs to be defined in the exec host for  
each of the two nodes

Then you could use "qmod -d hostBgroupA" in your example to disable,  
i.e. "dry out" the hostBgroupA queue without killing or suspending  
any jobs there. Then only jobs from group B can be scheduled there.  
Later you can enable the queue again, if there are no pending ones  
from groupB left.

Cheers - Reuti

To unsubscribe, e-mail: users-unsubscribe at gridengine.sunsource.net
For additional commands, e-mail: users-help at gridengine.sunsource.net

More information about the gridengine-users mailing list