- Ignore CPU limitations and resource share entirely, IF
a host:
(1) has no work for this project
(2) has no results in this sched reply
This ensures that any host that wants to do work will at least
get *something*. It liberalizes slightly David A's approach
from 14 Feb 2005. Eliminate use_time_stats from wreq structure.
- Scheduler changes (locality scheduling only):
- Improve return value info for some functions.
- Modify send_old_work() to accept a t_min < t < t_max time range
- New sched locality algorithm to send work to hosts with no files.
Send oldest result in the time range A < t < B where
B = locality_scheduling_timeout/2
A = B - rand*locality_scheduling_timeout/2
Here rand is a uniformly distributed random number in [0,1].
- When an unsent result is older than locality_scheduling_timeout, no
longer send it to the FIRST host that requests work. Instead send
it to the first host which has a connection speed > 100kb/s.
- Fix file deletion. Previously we were deleting files from hosts
when they got no work for that file. But this might have been
because the work was infeasible (cpu time). Now delete files
from host ONLY if there is no work remaining for that file.
svn path=/trunk/boinc/; revision=5434
a work request, do not search for or send further work. This is the same
way that disk space limits are handled. This is necessary since otherwise
a host with small memory will endlessly trigger the WU generator, churning
out infeasible WUs.
Added boolean arg to host_has_file() following David A's advice. This
eliminates the 'expensive' copy of a large data structure. The bool arg
makes host_has_file() skip the final WU in the vector in hunting for a file.
Better log message for setting coredump size.
Added RCSID tag to sched_timezone.C
svn path=/trunk/boinc/; revision=5397
graphics classes. In many places the code was written assuming default values
of 0, especially for pointers and booleans. While that's true in the case of
a static instance with the default constructors, it not generally true with
dynamic allocation unless the default constructor is replaced. Therefore I've
added constructors in the following classes/structs: MOVING_TEXT_PANEL, COLOR,
PROGRESS, PROGRESS_2D, TEXTURE_DESC, REDUCED_ARRAY.
This will be a problem is any are used from C code unless the constructors
declarations are enclosed in "#ifdef __cplusplus" blocks.
There was also a problem that showed up under Windows when dynamic allocations
were used. app_graphics_resize() gets called before app_graphics_init(). This
usually results in a crash since classes haven't yet been constructed. To work
around this I've added a case for WM_CREATE in the WndProc() which calls
app_graphics_init. Under windows this will get passed before WM_SIZE does.
svn path=/trunk/boinc/; revision=5395
is disabled by default. Having this
is really useful if the scheduler is crashing some of the time. You
can load the core dump file into a debugger to see where things are
breaking. To use this, edit sched/main.C by hand and set
#define DUMP_CORE_ON_SEGV 1
svn path=/trunk/boinc/; revision=5385