"<need_ati_libs>". Before this the default was to require AMD libraries unless
need_ati_libs was set. Now the default is to require neither. This is
necessary for MacOS compatibility (where there is no distiction).
-SCHED: Changed intel gpu type search to match any string in the gpu_type
beginning with "intel". This was done because there have been
inconsistencies in the code where "intel" vs "intel_gpu" is used.
Problem: a workunit could error out with unsent results.
The feeder skips such results, but the size_regulator counts them
and doesn't so doesn't promote any new results.
Solution: the feeder scans for results even with workunit errors.
If marks these results as state OVER, outcome DIDNT_NEED
check_set() wasn't returning "retry" properly in the case where
one of the calls to init_result() return ERR_OPEN_DIR
(treated as a transient failure, since it can be caused by a failed NFS mount)
nvidia plan classes in plan_class_spec.xml
- SCHED: Scheduler was not using properly estimated performance when assigning
work. It was using theoretical performance to choose version and actual
preformance to determine how long it would take. I've changed that to start
with theoretical performance and converge to actual performance as
host_app_version pfc_n increases.
- SCHED: Added some additional app version selection debugging output.
The scheduler sends <no_rsc_apps> flags for processor types for which
the project doesn't have app versions.
Problem: if the project doesn't have app versions for any processor types
(e.g. because everything was temporarily deprecated)
and it sends all the flags,
7.0.x clients may never contact the scheduler again.
Solution: check whether we have app versions for any of the client's processor types.
If not, don't send the no_rsc_apps flags.
allows projected_flops to be calculated from host_app_version pfc rather
than elapsed time. This is valuable if result elapsed times are highly
variable and dependent on input.
See http://boinc.berkeley.edu/trac/wiki/MultiSize
The components of this include:
- DB changes:
add size_class to workunit and result
n_size_classes to app; >1 means multi-size
- size_regulator daemon program: change results states
from INACTIVE to UNSENT carefully
- size_census program; writes quantile info in flat files
- transitioner: when creating results for multi-size apps,
set server state to INACTIVE
- sched shmem (feeder): read quantile info from flat files,
store in shared memory
- scheduler (score-based scheduling): for multi-size apps,
add component to score function for size class.
- show_shmem: show result size class
- make_work (and other callers of count_unsent_results()):
count both INACTIVE and UNSENT
- create_work: add --size_class cmdline option
Also:
- if get MySQL errors in upgrade, don't rewrite db_version
This regular expression is matched against the "host summary" string
stored in host.serialnum.
You can use this, e.g., to allow only particular GPU models.
A "viable" result is one that could potentially become the canonical result,
i.e. the outcome is SUCCESS and the validate state is not INVALID.
The existing code treated all results with outcome SUCCESS as viable,
which is wrong.
In particular, this could cause workunit.target_nresults
to be incremented inappropriately.
sched_customize.h. Their definitions in source are now protected with #ifdef
to prevent warnings.
- Created #defined parameters for GPU memory requirements of the GPU plan
classes
- Fixed some logging problems in sched_customize.h and expanded logging in some
place in the GPU plan class selection.
- Reeplaced opencl_*_101 plan classes with more generic (but compatible)
opencl_*_<ver> plan classes where the opencl version is determined from the
plan class name. This is so we don't need to write new plan classes to go
from openc 1.1 to opencl 1.2. Just change the name of the plan class from
opencl_nvidia_101 to opencl_nvidia_102 and it's done.