Commit Graph

25 Commits

Author SHA1 Message Date
David Anderson 43c5715729 client: parse (but ignore) <min_rpc_time> in state file 2013-11-10 18:03:15 -08:00
David Anderson 9778177448 client: clear no_rsc_apps[] flags before parsing scheduler reply. Otherwise they'll never get cleared if server doesn't explicitly send. 2013-11-05 12:56:51 -08:00
David Anderson a3b2be239f Compile fixes for C++11, from Rene Ladan 2013-11-05 09:19:27 -08:00
David Anderson 7cd8e531fc Client: clear project RPC backoffs on startup
I think this policy makes more sense.
2013-10-17 22:24:48 -07:00
David Anderson 0022c9c5ad client: if project sends dont_use_dcf, set its DCF to 1 2013-06-17 21:53:48 -07:00
David Anderson eee2879a57 client: fix bug that allowed work fetch request while file uploads active
A while back we added a mechanism intended to defer work-request RPCs
while file uploads are happening,
with the goal of reporting completed tasks sooner
and reducing the number of RPCs.
There were 2 bugs in this mechanism.
First, the decision of whether an upload is active was flawed;
if several uploads were active and 1 finished,
it would act like all had finished.
Second, when WORK_FETCH::choose_project.cpp() picks a project,
it sets p->sched_rpc_pending to RPC_REASON_NEED_WORK.
If we then decide not to request work because an upload
is active, we need to clear this field.
Otherwise scheduler_rpc_poll() will do an RPC to it,
piggybacking a work request and bypassing the upload check.
2013-06-14 22:40:43 -07:00
David Anderson 5452d3998f client: show app_config warnings only on startup and reread config 2013-05-19 10:02:00 -07:00
David Anderson c6d79d1172 client: fix bug that could cause client to never contact project
if a project sends us <no_rsc_apps> flags for all processor types,
then by default the client will never do a scheduler RPC to that project again.
This could happen because of a transient condition in the project,
e.g. it deprecates all its app versions for a while.

To avoid this situation, the client now checks whether the no_rsc_apps flags
are set for all processor types.
If they are, it clears them all.
This will cause work fetch to use backoff,
and the client will occasionally contact the project.
2013-05-17 10:25:03 -07:00
David Anderson 99258dcecb - client: fix compile warning 2013-04-24 20:00:02 -07:00
David Anderson 9142a36ebe Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2013-04-22 10:08:23 -07:00
Charlie Fenton 476d4a7f90 client: fix fatal bug introduced in 64d7fa34 2013-04-22 03:30:29 -07:00
David Anderson 7e3dbfa67a - client: final fix to GUI RPC addition 2013-04-18 14:08:50 -07:00
David Anderson 64d7fa3474 - client: more fixes to GUI RPC addition.
Also, replace get_project_dir() with a memoized member function of PROJECT
2013-04-18 13:57:33 -07:00
David Anderson 0880c7107a - fix previous GUI RPC commit 2013-04-18 13:09:03 -07:00
David Anderson aa07305eeb - GUI RPC: add "project_dir" field to PROJECT struct.
GUIs can look for image files (stat_icon etc.) in this directory.
2013-04-18 12:43:17 -07:00
David Anderson 68331492ac - client: Avoid showing too-old stats in GUI.
Trim old credit statistics on each GUI RPC
    as well as each scheduler reply.
2013-04-17 01:25:24 -07:00
David Anderson 89c9e49bc6 - client emulator: implement project availability feature 2013-03-22 10:31:43 +01:00
David Anderson 24b62b58a8 - client emulator: fix crash if you have active tasks of
non-CPU-intensive projects
2013-03-07 11:28:43 +01:00
David Anderson 1174b00aba - client/manager: tweaks to Intel GPU code 2013-03-04 15:27:25 +01:00
Charlie Fenton ce87ec9848 OpenCL: First pass at adding support for Intel Ivy Bridge GPUs 2013-03-04 15:23:39 +01:00
David Anderson 777f1f11e8 - client: change work fetch policy to avoid starving GPUs in situations where GPU exclusions are used. - client: fix bug in round-robin simulation when GPU exclusions are used.
Note: this fixes a major problem (starvation)
    with project-level GPU exclusion.
    However, project-level GPU exclusion interferes with most of
    the client's scheduling policies.
    E.g., round-robin simulation doesn't take GPU exclusion into account,
    and the resulting completion estimates and device shortfalls
    can be wrong by an order of magnitude.

    The only way I can see to fix this would be to model each
    GPU instance as a separate resource,
    and to associate each job with a particular GPU instance.
    This would be a sweeping change in both client and server.
2013-03-01 15:31:41 +01:00
David Anderson e79d3ea4c8 - client: change the way project disk share is computed.
- Allow projects to report "desired disk usage" (DDU).
        If the client learns that a project wants disk space,
        it can shrink the allocation to other projects.
    - Base share computation on DDU rather than disk usage.
    - Introduce the notion of "disk resource share".
        This is defined (somewhat arbitrarily) as resource share
        plus 1/10 of the largest resource share.
        This is intended to ensure that even zero-share projects
        get enough disk space to store app versions and data files;
        otherwise they wouldn't be able to compute.
- server: use host.d_boinc_max (which wasn't being used)
    to start d_project_share reported by client.
- volunteer storage: change the way hosts are allocated to chunks.
    Allow hosts to store several chunks of the same file, if needed


svn path=/trunk/boinc/; revision=26052
2012-08-22 04:02:52 +00:00
David Anderson 32a08d27d9 - C++ code: use MAXPATHLEN for char arrays that hold paths
svn path=/trunk/boinc/; revision=25659
2012-05-09 16:11:50 +00:00
David Anderson 331114d961 - client: minor code shuffle
svn path=/trunk/boinc/; revision=25627
2012-04-30 21:12:35 +00:00
David Anderson bbfbef0fe8 - client: code cleanup. Move RESULT and PROJECT to separate files
svn path=/trunk/boinc/; revision=25621
2012-04-30 21:00:28 +00:00