[GE users] how to restrict max 2 jobs per user/user group

reuti reuti at staff.uni-marburg.de
Sat Nov 15 13:40:12 GMT 2008


Am 14.11.2008 um 16:56 schrieb Sangamesh B:

> Hello SGE users,
>       In a cluster, installed with Rocks 4.2.1 and SGE 6.0U8,
> following configuration is required:
> Two kinds of users:    External & Internal
> Restrictions for External users:
> Not more than two jobs are allowed and each job can take max 16 slots.
> And each job has a restriction of max 72 hours as run time.
> No restriction for Internal Users.
> For this I,
> Created two usersets: EXTERNAL & INTERNAL
> Created a queue external.q with 8 hosts (dual core dual processor) -
> total 32 slots
> Set h_rt to 72 hours in external.q
> But not getting how to set only <=2 jobs should run?

it's not possible for now to limit the number of jobs, although it's  
an RFE for a future release of SGE. For now you can limit only the  
slots in 6.1/6.2 by an RQS. For 6.0 you are stuck with a workaround  
like I posted two days ago:


which even doesn't apply to your case.

> Also this configuration is not a feasible solution in the following  
> cases:
> As internal users are "xusers" for this queue,

BTW: having a user_lists attached to a queue, unlisted users are  
automatically excluded. There is no need to mention them also in the  
xuser_lists entry.

> then some slots out of
> 32 may remain unused.
> To overcome this, if internal users are allowed, then external users
> jobs may stay in waiting state.
> Can someone on the list suggest, how to
> 1. allow only two jobs for external user group
> 2. Internal users jobs should be allowed to run in external.q, if
> slots = (32 - number of slots occupied 2 external users jobs) is
> greater than 0

Even it it would be possbile to set it up right now, I'm not sure  
whether it's the best approach. Imagine the external users have two  
jobs running and occuyping 8 slots in total. So you would like to  
allow internal users to use the remaining 24 slots - unfortunately  
these are really long jobs. After some while the two external jobs  
end and now they want to run 2 jobs with 16 slots each - so using the  
granted number of 32 slots. They have to wait. (If you grant them 32  
slots, you could also state that it's up them, how to use these for a  
mixture of serial and parallel jobs.)

For a hard-coded setup of the nodes (which you did already as you  
mentioned), you could also tell the internal user to run jobs on the  
@internal_hgrp nodes, and if they decide to use @external_hgrp, they  
can do so if slots are free, but their jobs might get suspended when  
the external users decide to run a job there.

Is this feasible?

-- Reuti


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

More information about the gridengine-users mailing list