[GE users] queue priorities?

Stephan Grell - Sun Germany - SSG - Software Engineer stephan.grell at sun.com
Thu Jul 15 08:26:33 BST 2004


    [ The following text is in the "ISO-8859-1" character set. ]
    [ Your display is set for the "ISO-8859-10" character set.  ]
    [ Some special characters may be displayed incorrectly. ]

Hi Don,

the setup you want is possible. I will write down an example and hope 
that it helps:

two complexes (qconf -mc):
medium medium bool == forced yes 0 1
high       high      bool == forced yes 0 2

three queues:

all.q (keeps the defaults)

medium.q (qconf -aq medium.q) - change:
  complex_values     medium=true
  subordinate_list      all.q=1

high.q (qconf -aq high.q) - change:
  complex-values     high=true
  subordinate_list      all.q=1, medium.q=1


In a setup like this, a job has to request the medium or high resource 
to get in one
of those queues, otherwise it will run in the all.q. If a job starts in 
medium.q, the jobs
in the all.q will be suspended and resumed, when the job in the medium 
queue has
finished. The same is true for the high.q, exept, that the jobs i the 
medium.q will be
suspended as well.
To ensure not too many job suspensions, you can use the urgency policy 
to give
jobs, which request medium/high a higher scheduling priority that others.


Does this help?

Cheers,
Stephan


Chris Dagdigian wrote:

>
>
> Hi Don,
>
> {my $.02}
>
> The concept of queues with high/normal/low priority is something that 
> people traditionally familiar with PBS and Platform LSF try to 
> transplant directly into Grid Engine deployment configuration.
>
> Much of the confusion when this happens is due to the fact that the 
> concept of a queue in Grid Engine is quite different from a 'queue' in 
> LSF or PBS.
>
> As a general thing with SGE you don't really want your cluster users 
> to be thinking about queues at all (as someone with lots of LSF 
> background this was hard for me to deal with at first...) SGE queues 
> are just containers for running jobs on an execution host, they are 
> not pending bins for jobs sorted on priority etc.
>
> In the SGE model all the user should do is describe the resources 
> necessary for successful job completion. The SGE scheduler and qmaster 
> then handle the task of picking the best available queue instance to 
> run the job on within the context of the various resource allocation 
> policies and configuration settings that are in effect.
>
> The decision regarding when jobs run and what user/department/project 
> gets what percentage of available resources is based on scheduling 
> policies, not the name of the queue they submitted the job to.
>
> Generally speaking it is possible to do what you want but often the 
> cleaner and more powerful/flexible approach over time is to 'go with 
> the flow' by understanding how the policy mechanisms work within Grid 
> Engine.
>
> Once you can describe how you want your business or scientific goals 
> to be expressed dynamically in cluster resource allocation you can 
> more easily configure the SGE to suit your needs.
>
> I can't give you any specific config pointers without knowing more 
> details about how you want to allocate resources.
>
> For instance there is a simple priority mechanism within the standard 
> SGE 5.3 product that lets users describe the relative priority of 
> their jobs (I think via the '-p' qsub argument). This may or may not 
> be suitable for you because the entire concept hinges upon trusting 
> the users to self-police themselves. This works for some people and 
> not at all for others :)
>
> Another approach that is similar to what you are describing as your 
> need involves the concept of Subordinate queues (which are well 
> covered in the SGE documentation). You can configure "high" "medium" 
> and "low" queues on each host and make them subordinate to each other. 
> When the "high" queue is fully engaged the other queues can be 
> configured such that they become disabled or suspended. Again, I'm not 
> sure if this is suitable for your needs or not since I don't know if 
> you are "trusting" the users to pick a queue or if you want everything 
> handled behind the scenes by SGE and the SGE administrator account.
>
> SGE 5.3 Enterprise Edition has functional and share tree policies 
> which are great for allocating resources based on user, group, 
> department or project.
>
> If your need for high/low/medium priority queues is really due to the 
> fact that some users/groups/projects/departments are more "important" 
> than others then the SGE Functional and Share Tree policies would 
> probably work great.
>
> SGE 6.0 has the 5.3 Enterprise Edition functionality with some 
> additional scheduling and policy improvements as well.
>
> -Chris
>
>
> Don Shesnicky wrote:
>
>>  
>>
>>
>>> To suspend them, you can use the subordinate queue feature (man
>>
>>
>> queue_conf ).
>>
>>
>> Reuti,
>> Can you give me some more details on how to do the priority setting? I'm
>> having some trouble getting my head around how to configure sge. It 
>> seems a bit
>> obtuse.
>> Basically I want a high, normal and low priority set of queues where
>> jobs in the high get either more cycles then the others or totally 
>> suspend jobs in
>> the others. Sounds pretty simple but the technique just doesn't seem 
>> obvious.
>>
>> Don
>>
>



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