[torquedev] routing queues

Martin Siegert siegert at sfu.ca
Wed Jul 28 20:21:01 MDT 2010


On Tue, Jul 27, 2010 at 10:20:43AM +0200, Stéphan Gorget wrote:
>
>    On Mon, Jul 26, 2010 at 11:53 PM, Martin Siegert <[1]siegert at sfu.ca>
>    wrote:
>
>      Hi,
>      I am trying to implement a routing queue that sends all serial
>      jobs (i.e., all jobs that request a single processor only) to
>      a queue q1:
>      create queue default
>      set queue default queue_type = Route
>      set queue default route_destinations = q1
>      set queue default route_destinations += qs
>      set queue default enabled = True
>      set queue default started = True
>      create queue q1
>      set queue q1 queue_type = Execution
>      set queue q1 resources_max.nodect = 1
>      set queue q1 resources_max.procs = 1
>      set queue q1 enabled = True
>      set queue q1 started = True
>      create queue qs
>      set queue qs queue_type = Execution
>      set queue qs enabled = True
>      set queue qs started = True
>      set server default_queue = default
>      For now I ignore problems with combined requests like
>      -l nodes=1:ppn=2+procs=8
>      However, even requests with
>      -l nodes=1:ppn=2
>      or
>      -l procs=8
>      all end up in queue q1. The jobs then immediately after get deleted
>      by moab with an error:
>      job was rejected - job violates class configuration 'procs too high
>      for class 'q1' (2 > 1)'
>      (This is for the request nodes=1:ppn=2).
>      In other words: this is not working at all.
>      What am I missing here?
>      - Martin
>      --
>      Martin Siegert
>      Head, Research Computing
>      WestGrid/ComputeCanada Site Lead
>      IT Services                                phone: 778 782-4691
>      Simon Fraser University                    fax:   778 782-4242
>      Burnaby, British Columbia                  email: [2]siegert at sfu.ca
>      Canada  V5A 1S6
>      _______________________________________________
>      torquedev mailing list
>      [3]torquedev at supercluster.org
>      [4]http://www.supercluster.org/mailman/listinfo/torquedev
>
>    Hi,
>    You should try sthg like this :
>    #
>    # Create and define queue routingseq
>    #
>    create queue routingseq
>    set queue routingseq queue_type = Route
>    set queue routingseq resources_max.ncpus = 1
>    set queue routingseq resources_max.nodect = 1
>    set queue routingseq resources_max.nodes = 1:ppn=1
>    set queue routingseq route_destinations = scourt
>    set queue routingseq route_destinations += smoyen
>    set queue routingseq route_destinations += slong
>    set queue routingseq enabled = True
>    set queue routingseq started = True
>    #
>    # Create and define queue route
>    #
>    create queue route
>    set queue route queue_type = Route
>    set queue route route_destinations = routingseq
>    set queue route route_destinations += routingpar
>    set queue route enabled = True
>    set queue route started = True
>    #
>    # Create and define queue routingpar
>    #
>    create queue routingpar
>    set queue routingpar queue_type = Route
>    set queue routingpar resources_min.ncpus = 2
>    set queue routingpar route_destinations = pcourt
>    set queue routingpar route_destinations += pmoyen
>    set queue routingpar route_destinations += plong
>    set queue routingpar enabled = True
>    set queue routingpar started = True
>    --
>    Stéphan

Thanks Stéphan - that helped.
The following actually appears to work for me:

create queue default
set queue default queue_type = Route
set queue default route_destinations = qs
set queue default route_destinations += q1
set queue default enabled = True
set queue default started = True

create queue q1                                       
set queue q1 queue_type = Execution                   
set queue q1 max_user_queuable = 480                  
set queue q1 resources_max.nodect = 1                 
set queue q1 resources_max.nodes = 1:ppn=1            
set queue q1 resources_max.procs = 1                  
set queue q1 enabled = True                           
set queue q1 started = True                           

create queue qs                                       
set queue qs queue_type = Execution                   
set queue qs resources_min.nodes = 1:ppn=2            
set queue qs resources_min.procs = 2                  
set queue qs enabled = True                           
set queue qs started = True                           

Strangely enough, when I set

set queue default route_destinations = q1
set queue default route_destinations += qs

The routing no longer works: jobs submitted with -l procs=2
end up in q1.

Can somebody tell me which routine in the code is responsible for
assigning the correct queue?

Thanks!

- Martin


More information about the torquedev mailing list