(there was a confusion with e-mails on and off the list, I apologize)Thanks, 
Reuti! I created a project and added it as a separate sub-tree:# qconf 
-sstreeid=0name=roottype=0shares=1childnodes=1,2id=1name=defaulttype=0shares=1childnodes=NONEid=2name=gpuprojtype=1shares=1childnodes=NONEIt
 is now enforced via JSV on all GPU jobs. Now, what do I need to change in my 
scheduler config?# qconf -ssconfalgorithm           
              defaultschedule_interval 
                0:0:10maxujobs   
                      
 1900queue_sort_method               
  seqnojob_load_adjustments             
 np_load_avg=0.50load_adjustment_decay_time       
 0:7:30load_formula               
       np_load_avgschedd_job_info       
            trueflush_submit_sec     
             0flush_finish_sec     
             0params       
                    
 nonereprioritize_interval             
0:0:0halftime                   
       48usage_weight_list         
        
cpu=0.333000,mem=0.333000,io=0.334000compensation_factor       
        5.000000weight_user         
              1.000000weight_project   
                
 0.250000weight_department             
    0.250000weight_job             
           0.000000weight_tickets_functional 
        9800weight_tickets_share       
       200share_override_tickets       
     TRUEshare_functional_shares         
  TRUEmax_functional_jobs_to_schedule   2000report_pjob_tickets 
              TRUEmax_pending_tasks_per_job 
        50halflife_decay_list         
      cpu=1440:mem=1440:io=1440policy_hierarchy     
             FOSweight_ticket     
                
0.500000weight_waiting_time               
1.000000weight_deadline                 
  0.000000weight_urgency               
     0.000000weight_priority           
        0.500000max_reservation         
          0default_duration       
          
 0:10:0Thanks! Pavel---------------------Sent 
from Reuti <[email protected]> on 02.05.2017 
- 3:38 pm:Hi,

> Am 02.05.2017 um 15:11 schrieb [email protected]:
> 
> we run SGE 8.1.9 in a cluster with many multi-core machines and some GPU 
machines. We were able to configure different queues with different complexes 
and the scheduling works fine in general. What I'm not yet happy with is the 
way the priority is calculated.
> 
> A typical user will submit a few GPU jobs and many non-GPU jobs. The two 
queues are strictly separated - no GPU jobs will run on a non-GPU machine and 
no non-GPU jobs will run on a GPU machine. Unfortunately, the regular CPU-jobs 
that run on non-GPU machines seem to reduce the priority of the pending GPU 
jobs. This seems to penalize GPU-users even if their GPU consumption has been 
very low for a long time.

Yes, that's understandable.


> Since the GPU-per-user ratio is very low (~1.5), I would like the SGE to 
keep scheduling the CPU jobs as before, but do something different for GPU 
jobs. Ideally, I would like it to ignore all non-GPU usage when calculating 
priority for GPU jobs.
> 
> What is the best mechanism to achieve this separation? I could install two 
instances of SGE (one for GPU, one for non-GPU queues) so that their schedulers 
are 100% independent, but it is difficult to maintain and I would prefer 
anything more "native".

Are you using projects right now? Either voluntarily of forced by a JSV, the 
GPU jobs could be assigned to a (different) project in a share tree policy and 
get a different scheduling behavior this way.

-- Reuti


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

Reply via email to