[GE users] queue config question

Reuti reuti at staff.uni-marburg.de
Wed Jan 25 21:44:52 GMT 2006


Hi Jeff,

Am 25.01.2006 um 21:52 schrieb Woods, Jeff:

> Is it possible to manage to create a queue with 'n' number of slots  
> which could be scheduled on any host?
>
> As an example, I have a cluster with 20 nodes.  There are a total  
> of 60 CPUs installed, and I have the number of slots per host  
> restricted to be the same as the number of CPUs.  I would like to  
> create three queues, each with a different number of slots.  When a  
> job is submitted, I don't care which host it is run on, but no more  
> than the max number of slots for the queue should be scheduled at  
> one time.
>
> I have created a host list which contains all of the execution  
> hosts in my cluster, and have created the three queues using the  
> host list.  The first queue was created with 50 slots, the second  
> with 15 slots, and the third with 25 slots.  Yes, this exceeds the  
> number of slots that the hosts will allow -- we don't expect all  
> three queuest to be busy at the same time, and it would be  
> acceptable for a job to be delayed if there aren't enough slots  
> available on the hosts.
>
> The problem with my approach is that it creates 50 slots on each  
> queue instance for the first queue, 15 on each queue instance for  
> the second queue, and 25 on each queue instance for the third.  If  
> I submit 50 jobs to the second queue (which should only have 15  
> slots), all of the jobs get scheduled -- not just the first 15.  I  
> would like to see 15 jobs get scheduled, and the remaining 35 wait  
> for free slots in the queue.
>

what you see is the intended behavior: you specify the slots per  
queue instance in the queue configuration. The missing feature you  
are looking for is already in the RFE database.

As a workaround, you could use a complex for each of the three queue  
types, which setup is identical to the one of a license restriction.  
Just set the complexes in the global exec host definition to the  
maximum number of slots for each type of queue there. But you will  
have to request this resource, and this might avoid the specification  
of the queue. Okay, here the setup:

$ qconf -mc

myq50               myq50      INT         <=    YES          
YES        0        0
myq15               myq15      INT         <=    YES          
YES        0        0
myq25               myq25      INT         <=    YES          
YES        0        0

$ qconf -me global

complex_values        myq50=50,myq15=15,myq25=25

$ qconf -mq the50queue

complex_values        myq50=999,myq15=0,myq25=0

$ qconf -mq the15queue

complex_values        myq50=0,myq15=999,myq25=0

and similar for myq25.

Now submitting with: "qsub -l myq15=1 job.sh" should give you only a  
slot from the15queue, as the other queues offer only 0 for this  
resource, and always the lower limit is the restriction. (The value  
of 999 doesn't matter exactly, as it's the limit per queue-instance  
it could also be the number of slots there.)

HTH - Reuti

>
> I am either doing something wrong, or am misunderstanding the  
> documentation.  If what I'm doing wrong is not obvious, I can  
> provide the current configurations for my queues and/or hosts.

---------------------------------------------------------------------
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