Routing queue

Craig Tierney ctierney at
Tue Jul 10 09:14:24 PDT 2001

I suspect that the routing queue code in the server (scheduler?) is
not smart enough.  At some point in your configuration you selected

set queue route_queue route_destinations = switch1_queue

And so all jobs are going to switch1.  You are probably going to have
to write something yourself (and that big mess I sent you before was probably
not what was needed).

Do your jobs take about the same wallclock time, or do the times vary?

Here is the basic structure of what you want:

#!/bin/csh -f

   set exequeues=("switch1" "swtich2")
   set routequeue="route_queue"

   set pos=1;
   set maxqueue=2;  # this should equal the number of exequeues

# See if there are jobs waiting
       set jobs_list = `qstat -a | grep $routequeue | awk '{print $1}'`
# Now do something with each job
# In this case I am just going to alternate between queues
       foreach job ($jobs_list) 
           qmove $exequeues[$pos] $job   
@ pos = $pos + 1
           if ($pos > $maxqueue) then
               set pos=1

     sleep 30


# End of script

You can make the logic in what queue things get moved to more robust.
you can count up the nodes and jobs on each queue, (see jobs_list for
an example).  You also don't have to schedule each job, but you could
only do that when resources are available.

For this to work, you need to turn off server routing.

set queue route_queue alt_router = True
set queue route_queue enabled = True
set queue route_queue started = False

Good luck.  I hope this example is easy enough to understand.


On Tue, Jul 10, 2001 at 11:26:35AM -0400, Joey Raheb wrote:
> Hello,
> I was hoping someone could help me out.  I am having problems with my routing
> queue.  I would like to be able to allow the users to submit jobs to one queue
> called route (a routing queue).  This routing queue should be able to submit
> jobs to two different execution queues, switch1 or switch2, based on the
> availability of nodes.  No resource properties are set on either queue so both
> are identical in resources.  Why is it that when I send multiple jobs to the
> routing queue all jobs are sent to switch1 and none are sent to switch2.  Even
> when switch1 is full, it continues to send jobs their and queues them until
> nodes become free while switch2 runs NO jobs. I would appreciate any help
> anyone can give, I've been stuck on this one for a while.
> Joey
> ____________________________________________________________________
> Get free email and a permanent address at
> _______________________________________________
> Beowulf mailing list, Beowulf at
> To change your subscription (digest mode or unsubscribe) visit

Craig Tierney (ctierney at
phone: 303-497-3112

More information about the Beowulf mailing list