OK.  I was misreading what was happening in the block to run.

Shouldn't it be if (ncpus >= 0.5 ...  instead of if (ncpus ... ?

What if the first task assigned has a plan class of 0.1 CPU and 1 GPU?

jm7


                                                                           
             David Anderson                                                
             <[email protected]                                             
             ey.edu>                                                    To 
                                       [email protected]              
             01/15/2010 01:23                                           cc 
             PM                        [email protected]          
                                                                   Subject 
                                       Re: Logic                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




It's correct as is.
The idea is that if a job has avg_ncpus > ncpus
(e.g. because the user reduced ncpus in cc_config.xml)
it should get to run, but only when it's at the head of the queue.

If it were "||", then the scheduler would never run
two 4-CPU jobs at once on an 8-CPU system, for example.

[email protected] wrote:
               //
>              if (rp->avp->avg_ncpus > 1) {
> -                if (ncpus_used + rp->avp->avg_ncpus >= ncpus+1) {
> +                if (ncpus_used && (ncpus_used + rp->avp->avg_ncpus >=
> ncpus+1)) {
> +                    // the "ncpus_used &&" is to allow running a job
that
> uses
> +                    // more than ncpus (this can happen in pathological
> cases)
> +
>                      if (log_flags.cpu_sched_debug) {
>                          msg_printf(rp->project, MSG_INFO,
>                              "[cpu_sched_debug] not enough CPUs for
> multithread job, skipping %s",
>
>
> Are you certain that it should not be:
>
> +                if (!ncpus_used || (ncpus_used + rp->avp->avg_ncpus >=
> ncpus+1)) {
>
>
> jm7
>




_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to