[GE users] Subordinate queues

jallen at it.uts.edu.au jallen at it.uts.edu.au
Mon Sep 3 13:28:01 BST 2007


    [ 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. ]

The first thing I would try is overloading slots=2 on each of the typeA
nodes to limit the number of jobs that will run concurrently (since there
are overlapping queues).

  >  qconf -me hostname

To give the the typeA.q jobs higher priority, they can request a hard
resource that has a positive urgency value associated with it in the
complex (assuming urgency weight is non-zero in your scheduler policy). A
way to make this transparent would be to have the resource available only
in the typeA.q, with typeA defined as a requestable but not consumable
forced boolean in the complex resource configuration, i.e.:

  > qconf -sc

#name               shortcut   type        relop requestable consumable
#----------------------------------------------------------------------
default  urgency
----------------
typeA               typeA      BOOL        ==    FORCED      NO
FALSE    1000

You can make it available on typeA.q using the qconf command (or do
everything in qmon):

  > qconf -aattr queue complex_values typeA=TRUE typeA.q

Users can then request a job run on the high-priority queue like so:

  > qsub -l typeA jobA.sh

When I try this with one host "minotaur" I see jobs targeting the typeA.q
jump ahead of all.q, with no more than two jobs ever running on the host
at once (since minotaur has slots=2):

  > qstat

job-ID  prior   name       user         state submit/start at     queue
-----------------------------------------------------------------------
slots ja-task-ID
----------------
      6 0.60500 sleep      root         r     09/03/2007 21:12:09
typeA.q at minotaur                   1 1
      6 0.60500 sleep      root         r     09/03/2007 21:12:09
typeA.q at minotaur                   1 2
      5 0.50500 sleep      root         qw    09/03/2007 21:11:14
                                   1 1,2

This is similar to the "Prioritization with Preemption" policy except that
jobs submitted to typeA.q will not suspend running jobs from a the lower
priority queue (since subordinates are not used).

-- JA


> Hi all.
>
> I've got a small cluster set up with two types of nodes in it. There's a
> queue 'all.q' with two slots on each node, and also a queue 'typeA.q'
> which has two slots on each of the type A nodes. The problem with this
> is that if jobs are submitted to both queues then I end up with 4 jobs
> running on the typeA nodes, which I don't want. I would like the 'typeA'
> queue to get priority on the type A nodes, so that if anything is
> submitted to 'typeA.q' the scheduler would hold off running anything
> from 'all.q' on those nodes (but keep submitting 'all.q' jobs to the
> type B nodes).
>
> How do I do this? I've wandered around the documentation for subordinate
> queues, but my understanding is that that mechanism would result in
> already-running jobs on the typeA nodes from the 'all.q' queue would be
> suspended, and I don't want that. I want new jobs not to be scheduled on
> those nodes from 'all.q', but not already-running jobs to be suspended.
>
> All suggestions welcome.
>
> --
> Dr Mark Mackey
> Cresset BioMolecular Discovery
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe at gridengine.sunsource.net
> For additional commands, e-mail: users-help at gridengine.sunsource.net
>


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