Hi,

Am 02.05.2015 um 04:39 schrieb Mike Hanby:

> Howdy,
>  
> I'm wondering if anyone in the SGE community has any tips on how to 
> accomplish this on an SGE 6.2u5p2?
>  
> We would like to improve the balance competing of application profiles 
> currently active on the cluster, in particular, we need to balance queue wait 
> times between jobs that require many cores via MPI and those that use only a 
> single core.
>  
> Currently, MPI and SMP jobs tend to wait longer (the wait time goes up as the 
> number of slots requested) than single slot serial jobs. We have a fair share 
> policy in place, but even with that, serial users starve out the large # of 
> slot MPI users, especially large memory MPI jobs (ex: 64 slots at 13GB per 
> slot jobs).
>  
> We currently require users to request h_rt and vf as manadatory resource 
> requests. Based on our analysis of qacct, the vast majority of cluster jobs 
> are serial  and run in less than an hour and use less that 1GB of RAM per 
> core.  This means that these jobs, once identified, can be used very 
> effectively to back-fill resource gaps left by larger MPI jobs.

Are the parallel and/or large memory jobs submitted with resource reservation 
("-R y")? Is "max_reservation" in the scheduler set to a value greater than 
zero?


> We have a resource quota set in place to prevent slot over subscription of 
> the compute nodes:
> {
>    name         slotcap
>    description  Keep slots equal to processor cores for all exec hosts
>    enabled      TRUE
>    limit        hosts {*} to slots=$num_proc
> }
>  
> Here's the proposal that was passed down to me and I'm looking for 
> suggestions on how to implement it:
>  
> •             create a short.q to accept jobs with run times under 2 hours 
> and 2G per slot memory.
> This one is easy enough, create a queue: short.q and change h_rt in the queue 
> definition from INFINITY to 00:02:00 and vf from INFINITY to 2G. Limit the PE 
> list to smp
>  
> •             create a largempi.q to accept 64-core, large-memory MPI jobs 
> that have a max runtime of 6 hours
> Similar to above, largempi.q, h_rt set to 00:06:00 and vf set to 13G. Limit 
> the PE list to MPI pe's
> But, how do I make sure that jobs request a minimum of 8 slots to prevent 
> serial jobs (i.e. no pe requested) or small parallel?

You can use a JSV to add a queue request to the submitted jobs. Unfortunately 
there is nowhere in SGE some kind of minimum request facility to end up on any 
queue/host.

-- Reuti


>  
> •             assign both queues to a common hardware pool that satisfies the 
> resource needs of both job types (in our case, we'll use 22 nodes that each 
> have 48GB and 12 slots)
> Create a hostgroup containing the 22 compute nodes and assign that hostgroup 
> to short.q and largempi.q using the "hostlist" option
>  
> •             set a user limit of 100 slots in short.q to prevent a single 
> user from taking over the queue
> Create a RQS for this:
> {
>    name         short_queue_limits
>    description  Limit max slots for short.q
>    enabled      TRUE
>    limit        users {*} queues short.q to slots=100
> }
>  
> Now, what am I missing to have jobs submitted to largempi.q get priority and 
> to ensure that the serial jobs won't squeeze out the parallel large mem jobs.
>  
> Thanks,
>  
> Mike
> _______________________________________________
> users mailing list
> [email protected]
> https://gridengine.org/mailman/listinfo/users


_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users

Reply via email to