[GE users] Configure Queues with different priorities
reuti at staff.uni-marburg.de
Tue Nov 29 23:23:17 GMT 2005
[ 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. ]
Am 29.11.2005 um 16:33 schrieb Sebastian:
> Hello Reuti,
> i think we like to do our scheduling like these:
> 1 Job per CPU (defined at each host with slots=1)
> 4 Queues:
> jobtest nice 0 sequence number 2
> high nice 19 sequence number 2
> normal nice 0 sequence number 0
> low nice 0 sequence number 1
> Scheduler "Sort by sequence number"
> Now following should the scheduler do:
> If a job is submitted without a queue, he is put in the queue
> A Job submitted in jobtest should always be the fastet/with most cpu
This looks like an OpenPBS setup, where you submit to a queue. In SGE
you submit to the cluster, and SGE will select a suited queue for the
job to calculate in.
As Stephan pointed out, you can have just one queue in your case and
use the urgency policy. As as you prefer only one job per node, you
don't need to touch the nice values at all.
> The Scheduler should check the queues, first execute the jobs in queue
> "high", then in queue "normal" and then in queue "low", eg there
> should only
> run 2 jobs in high, then 5 in normal and 8 in low.
> How can i tell the scheduler that he works like that? Which
> parameters must
> i use?
> What do you mean with wildcards in the PE, if i make a PE for every
> queue, i
> have to make 4 start- and stopscripts because there the name of the
> PE is
> given or am I wrong?
> Thx, Kind Regards for help,
> Hi Sebastian,
> the priority in the queue definition is the nice value of the job on
> the execution host (if you disabled the automatic repriorization in
> the scheduler and SGE config). It's highly recommended only to use
> the range 0 to 19 in Linux, as values below zero should be reserved
> for system tasks.
> Am 28.11.2005 um 13:51 schrieb Sebastian:
>> thx, this works fine.
>> But now i have more question.
>> 1. The Priority-Value which can be modified in the queues, is this
>> runtime priority of the job in the system when he is executed or is
>> priority SGE-internal?
>> 2. When i make subordinated queues, like these:
>> highste Queue "high": Subordinated Queues: "normal" and "low"
>> normale Queue "normal": Subordinated Queue: "low"
>> lowest Queue "low": non subordinated Queue
>> If a user requests resources in the queue "high", is there always a
>> job in
>> the queue "normal" or "low" suspended or can i tell him, that only
>> the next
>> job should start in the highest queue.
>> Because our CAE-Software doesn't support suspension this wouldn't
>> be such
>> nice. :D
> Okay, then Subordinated Queues can't be used in your case.
>> I found some topics in the mailing list which has this topic, too.
>> There sometimes user wrote they should change her "Sequence Number"
>> for the
>> queues and say the scheduler it should "sort by sequence number".
>> If i do following configuration:
>> Queue "high": Sequence Number 0, no subordinated queues.
>> Queue "normal": Sequence Number 1, no subordinated queues.
>> Queue "low": Sequence Number 2, no subordinated queues.
> Queues are a place to calculate in. The jobs are either in waiting
> state, or a queue for this job is selected and they are moved to this
> queue to do their work.
> Having queues with different priorities (nice values) gives you the
> ability, to push low priority jobs in the background and give more
> computing time to the high-priority ones. Having only one job on the
> nodes will give this jobs the full CPU time, whether it's nice value
> is 0 or 19. So having a normal job with 19, and then start a second
> job on this node with a nice value of 0 will give most of the CPU
> time to this new job - this seems to be the right thing for you. But
> in Linux these nice values aren't an absolute value or amount of
> time. Just test with some jobs and different nice value settings
> which sharing of the CPU time fits your taste by checking the used
> CPU time in "top". Then you could decide how to submit them:
> a) Select for each job the desired queue in the qsub command. But
> using none would then might get any queue.
> b) Create a complex "high" and one "low" as BOOL and forced. Then
> attach the "high" to the queue with high priority, the "low" to the
> low priority queue. A simple qsub would get the "normal" queue, and
> for the other two cases you would have to request e.g. -l high in the
> qsub command.
> Using the sequence number is more useful to select queues on
> different machines for the scheduled jobs, e.g. fast machines before
> the slow machines in the cluster are used. I.e. giving the 2400 MHz
> nodes a sequence number of 10 in the queue definition and the 1800
> Mhz machines a 20, would always tries to get slots on the faster
> machines first (until all are used up), to which the scheduled jobs
> are routed.
>> If there is a job in "high" and in "low", but the low job was
>> submitted by
>> the user first, is the "high"-queue-job submitted before the "low"-
>> is submitted because of the sequence number?
>> 3. When i have more queues and i use a PE for booting LAM/MPI, must
>> i make
>> for every queue a own PE?
> Yes, because otherwise the job might get slots from different queues.
> When submitting you could use a wildcard for the requested PE to
> chose one of them.
> Cheers - Reuti
>> Thx, Kind Regards, Sebastian
>>> --- Ursprüngliche Nachricht ---
>>> Von: sergey rozov <sergeyr at siano-ms.com>
>>> An: 'Sebastian' <ChiefShadow at gmx.de>
>>> Betreff: RE: [GE users] Configure Queues with different priorities
>>> Datum: Mon, 28 Nov 2005 11:32:57 +0200
>>> Try the following:
>>> qconf -mattr exechost complex_values slots=1 node1
>>> qconf -mattr exechost complex_values slots=1 node8
>>> This should limit number of jobs per host.
>>> -----Original Message-----
>>> From: Sebastian [mailto:ChiefShadow at gmx.de]
>>> Sent: Monday, November 28, 2005 9:36 AM
>>> To: users at gridengine.sunsource.net
>>> Subject: [GE users] Configure Queues with different priorities
>>> we have 8 nodes which can be used.
>>> Now we should have four queues with following settings:
>>> test priority -20
>>> high priority -15
>>> normal priority 0
>>> low priority +20
>>> But if i definde this queues, everey queue has 8 slots.
>>> How can i make this queues only for my 8 nodes, so that all queues
>>> there commands to the 8 Nodes and look which queue can send her
>>> I tried it with "subordinated queues" but it doesn't work or i
>>> understand it. :-)
>>> We only want to use this 8 Nodes and the Scheduler should look
>>> which queue
>>> is the highest and submit the jobs there first and then make the
>>> the second highest priority eg.
>>> Or do you have other suggestions?
>>> Kind Regards,
>>> Highspeed-Freiheit. Bei GMX superg|nstig, z.B. GMX DSL_Cityflat,
>>> DSL-Flatrate f|r nur 4,99 Euro/Monat* http://www.gmx.net/de/go/dsl
>>> To unsubscribe, e-mail: users-unsubscribe at gridengine.sunsource.net
>>> For additional commands, e-mail: users-help at gridengine.sunsource.net
>> Highspeed-Freiheit. Bei GMX supergünstig, z.B. GMX DSL_Cityflat,
>> DSL-Flatrate für nur 4,99 Euro/Monat* http://www.gmx.net/de/go/dsl
>> Lust, ein paar Euro nebenbei zu verdienen? Ohne Kosten, ohne Risiko!
>> Satte Provisionen für GMX Partner: http://www.gmx.net/de/go/partner
>> To unsubscribe, e-mail: users-unsubscribe at gridengine.sunsource.net
>> For additional commands, e-mail: users-help at gridengine.sunsource.net
> Lust, ein paar Euro nebenbei zu verdienen? Ohne Kosten, ohne Risiko!
> Satte Provisionen für GMX Partner: http://www.gmx.net/de/go/partner
> 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