Commit Graph

3383 Commits

Author SHA1 Message Date
Charlie Fenton 03e8940a8a ss_app: Remove code which adds a Mac icon, restore previous permissions for boinscr
svn path=/trunk/boinc/; revision=17218
2009-02-12 01:19:56 +00:00
David Anderson 017b61283b - client, API: populate APP_INIT_DATA::hostid.
Remove userid and teamid fields, since the client doesn't know these.

svn path=/trunk/boinc/; revision=17216
2009-02-11 23:01:21 +00:00
David Anderson 07820cb2fa - client: change garbage collection so that an app version
is deleted only if there's another version *of the same plan class*
 with a higher version number


svn path=/trunk/boinc/; revision=17207
2009-02-11 19:54:23 +00:00
David Anderson cc81331dd4 - client: change the formula for debt update
so that largest debt among eligible projects tends towards zero
    - client: change definition of "overworked"; debt must be < 1 day

svn path=/trunk/boinc/; revision=17206
2009-02-11 19:07:34 +00:00
Charlie Fenton 3891fcfe88 SS: Fix new screensaver coordinator sandbox permissions
svn path=/trunk/boinc/; revision=17201
2009-02-11 10:33:50 +00:00
David Anderson 218af029f1 - client: show proxy info correctly on startup
- client: fix minor bug that produced spurious
        adjust debt interval too long messages when zero projects

svn path=/trunk/boinc/; revision=17197
2009-02-10 21:59:55 +00:00
David Anderson 872ed1a65c - client: if master file doesn't have URLs, clear RPC request
svn path=/trunk/boinc/; revision=17196
2009-02-10 19:33:46 +00:00
David Anderson 1fc3722e71 - client: add SCHEDULER_OP::rpc_failed();
this gets called when the op fails, either at initialization or later on;
        it clears the project's sched_rpc_pending flag if needed.
        This fixes a bug that caused user-requested RPCs to retry every 10 seconds
        when the network is down.
    - client: if debt-adjust period is too long, reset accounting.
        Otherwise we'll get this infinitely.
    - API: all optional alpha argument to TEXTURE_DESC::draw()

svn path=/trunk/boinc/; revision=17195
2009-02-10 19:30:59 +00:00
David Anderson 864864ab76 - client: all scheduler RPCs except user request are subject to backoff.
- client: if a project-requested RPC doesn't return work,
    don't do resource backoff.
- client: if a user-requested scheduler RPC errors out, clear the request

svn path=/trunk/boinc/; revision=17191
2009-02-09 22:00:31 +00:00
David Anderson bf93abb67a - web: fix bug in cached user page stuff from 12/29/08
svn path=/trunk/boinc/; revision=17166
2009-02-06 03:40:54 +00:00
David Anderson 515de57e76 - screensaver: flesh out new SS a bit
svn path=/trunk/boinc/; revision=17162
2009-02-06 00:29:00 +00:00
David Anderson 258dac62b2 - client: it the state file or an RPC reply has an app version
using a coprocessor we don't know about, ignore it
    (and all results using that app_version will be flushed).
    This deals with the situation where we have some GPU jobs,
    but the GPU card is removed (previously this resulted in a crash).
    This requires some code shuffling so that we check for coprocessors
    before reading state file.


svn path=/trunk/boinc/; revision=17161
2009-02-06 00:22:21 +00:00
David Anderson f851c4558a - web: add another team stats link
- client: if ncpus is zero in cc_config.xml, honor it.


svn path=/trunk/boinc/; revision=17160
2009-02-05 22:34:10 +00:00
David Anderson 34af99f2a2 - client: if time intervals for debt adjustment or job elapsed time
are negative, ignore (must be clock reset)

svn path=/trunk/boinc/; revision=17158
2009-02-05 21:48:42 +00:00
David Anderson af86d4326f - client: when accounting job elapsed time,
ignore intervals longer than 10 secs;
    that could only happen if the client or host was suspended/hibernated.
- client: in adjust_debts(), ignore intervals longer than
    2*work fetch period, not 2*CPU sched period.
    adjust_debts() is called from work fetch.

svn path=/trunk/boinc/; revision=17154
2009-02-05 20:16:28 +00:00
David Anderson 3ad73d70ba - client: redefine "overworked" as
debt < -1.5 * work_buf * cpu_sched_period
- web: on team page, link to cross-project team stats sites

svn path=/trunk/boinc/; revision=17152
2009-02-05 19:40:01 +00:00
Charlie Fenton 2c89b4103e SS: Implement basic new functionality in screensaver coordinator (tested on Mac only so far)
svn path=/trunk/boinc/; revision=17146
2009-02-05 12:32:16 +00:00
Charlie Fenton dd6b98488a SS: Begin work on upgrading screensaver coordinator for new functionality: add file names, sandbox security
svn path=/trunk/boinc/; revision=17141
2009-02-05 01:21:24 +00:00
David Anderson b9fc36ef84 - GUI RPC: made password file read into function
- lib: minimized FCGI library

svn path=/trunk/boinc/; revision=17133
2009-02-03 21:22:50 +00:00
David Anderson 5eeb9c0815 - client: fix bug that caused infinite sched RPCs if project down
svn path=/trunk/boinc/; revision=17127
2009-02-03 18:08:40 +00:00
David Anderson a4a2a68f7d - fix tabs
svn path=/trunk/boinc/; revision=17101
2009-02-02 18:47:34 +00:00
David Anderson 9f170696a4 - client: code cleanup
svn path=/trunk/boinc/; revision=17100
2009-02-02 18:45:00 +00:00
David Anderson 6120b02306 - client: code cleanup
svn path=/trunk/boinc/; revision=17098
2009-02-02 05:15:12 +00:00
David Anderson 89188fca84 - client: there was a problem with how the round simulator
worked in the presence of coprocessors.
    The simulator maintained per-project queues of pending jobs.
    When a job finished (in the simulation) it would get
    one or more jobs from that project's pending queue.

    The problem: this could cause "holes" in the scheduling of GPUs,
    and produce an erroneous nonzero shortfall for GPUs,
    leading to infinite work fetch.

    The solution: maintain a separate (per-resource, not per--project)
    queue of pending coprocessor jobs.
    When a coprocessor job finishes,
    start pending jobs from the queue for that resource.

    Another change: the simulator did strict reservation of coprocessors.
    If there are 2 instances of CUDA,
    and a 1-instance job is running in the simulation,
    it wouldn't start an additional 2-instance job.
    This also can cause erroneous nonzero shortfalls.

    So instead, schedule coprocessors like CPUs, i.e. saturate them.
    This can cause distorted completion time estimates,
    but it's better than infinite work fetch.

svn path=/trunk/boinc/; revision=17093
2009-02-01 04:37:19 +00:00
David Anderson be31245c82 - client: work fetch fixes
svn path=/trunk/boinc/; revision=17090
2009-01-31 00:20:13 +00:00
David Anderson 8de66223fd - client: tweak work fetch messages
- client: buffer 2000 messages instead of 1000

svn path=/trunk/boinc/; revision=17089
2009-01-30 22:33:45 +00:00
David Anderson 9e7cb42084 - client: computation of # idle CUDA instances was wrong
svn path=/trunk/boinc/; revision=17087
2009-01-30 21:49:20 +00:00
David Anderson b7a2c227ca - Work fetch / scheduler:
There are two mechanisms to prevent the scheduler from
    sending jobs that won't finish by their deadline.
    Simple mechanism:
        The client sends the interval x for which CPUs are projected
        to be saturated.
        Given a job with estimated duration y,
        the scheduler doesn't send it if x + y exceeds the delay bound.
        If it does send it, x is incremented by y.
    Complex mechanism:
        Client sends workload description.
        Scheduler does EDF simulation, sees if deadlines are missed.
        The only project using this AFAIK is BOINC alpha test.
    Neither of these mechanisms takes coprocessors into account,
    and as a result jobs could be sent that are doomed to
    miss their deadline.
    This checkin adds coprocessor awareness to the Simple mechanism.

    Changes:
    Client:
        compute estimated delay (i.e. time until non-saturation)
        for coprocessors as well as CPU.
        Send them in scheduler request as part of coproc descriptor.
    Scheduler:
        Keep track of estimated delays separately for different resources
- client: fixed bug that computed CPU estimated delay incorrectly
- client: the work request (req_secs) for a resource is the min
    of the project's share and the shortfall.

svn path=/trunk/boinc/; revision=17086
2009-01-30 21:25:24 +00:00
David Anderson ca7b1cd8e4 - client: update LTD correctly
svn path=/trunk/boinc/; revision=17074
2009-01-29 22:00:55 +00:00
David Anderson 604a83aa96 - client: if user requests RPC, do it even if project is backed off
- manager: show backoff interval correctly

svn path=/trunk/boinc/; revision=17070
2009-01-29 20:07:48 +00:00
David Anderson 195c0403b7 - scheduler: don't count host as reliable if avg_turnaround is zero
- client: restore notion of overworked;
    if a project is overworked for a resource R,
    don't fetch work for R unless there are idle instances

svn path=/trunk/boinc/; revision=17057
2009-01-28 04:58:01 +00:00
David Anderson 51b468dfc8 - client: remove the "deadlines_missed" and "overworked"
clauses from RSC_WORK_FETCH::choose_project()


svn path=/trunk/boinc/; revision=17056
2009-01-27 23:40:42 +00:00
David Anderson 8952fbe60e - client: if we're making an RPC to a project because of user request,
clear the resource backoff times so that we potentially
        can ask the project for work.

svn path=/trunk/boinc/; revision=17052
2009-01-27 22:25:32 +00:00
David Anderson dfa1996975 - scheduler: in get_app_version(), if we previously sent a CUDA app,
but we don't need to send any more CUDA jobs,
    delete the BEST_APP_VERSION record and look for another app version.
    This lets the scheduler send both CUDA and CPU app versions
    for a given app in a single RPC.


svn path=/trunk/boinc/; revision=17051
2009-01-27 21:18:06 +00:00
David Anderson 3eee24d83a svn path=/trunk/boinc/; revision=17032 2009-01-27 19:02:32 +00:00
David Anderson d23d481c63 - client: change the LTD policy so that
1) net adjustment for eligible projects is zero;
    2) max LTD is zero
- scheduler: fix msgs so disk size is shown in GB

svn path=/trunk/boinc/; revision=17031
2009-01-27 18:57:27 +00:00
David Anderson 1312f3fac9 - client: if we're doing an RPC (for whatever reason)
to a non-CPU-intensive project without a job, ask for one.

svn path=/trunk/boinc/; revision=17024
2009-01-27 00:16:31 +00:00
David Anderson 0b7aaa0303 client: improve backoff message
svn path=/trunk/boinc/; revision=17021
2009-01-26 18:01:30 +00:00
David Anderson f9004c3929 compile fixes
svn path=/trunk/boinc/; revision=17020
2009-01-26 17:57:26 +00:00
David Anderson 574d1fe087 - client: don't request work for a resource if it has no shortfall.
- client and server: get rid of coproc_cuda global.

svn path=/trunk/boinc/; revision=17019
2009-01-26 05:00:49 +00:00
David Anderson be177ee7a4 - client: clear debts when reset project
- client: respect work-fetch backoff for non-CPU-intensive projects
	- client: for non-CPU-intensive project, fetch new job
		if no currently running jobs
	- client: skip non-CPU-intensive projects in debt calculations
	- manager: show resource backoff times correctly

svn path=/trunk/boinc/; revision=16998
2009-01-23 18:29:28 +00:00
Charlie Fenton f9cf9b656d client sandbox: add details in switcher_exec "execv failed" message
svn path=/trunk/boinc/; revision=16994
2009-01-23 01:18:48 +00:00
David Anderson 298fb2a328 svn path=/trunk/boinc/; revision=16993 2009-01-23 00:06:55 +00:00
David Anderson 57518b9a43 - client: when preempting a process, remove it from memory if:
1) it uses a coprocessor
    2) it has checkpointed since the client started
    3) it's being preempted because of a user action
        (suspend job, project, or all processing)
        or user preference (time of day, computer in use)
- scheduler: if shared mem seg doesn't exist,
    report it and don't crash

svn path=/trunk/boinc/; revision=16992
2009-01-23 00:02:39 +00:00
David Anderson 5b132ae4f6 - client: simplify message describing scheduler request;
to get work request details, use <sched_op_debug>

svn path=/trunk/boinc/; revision=16988
2009-01-22 21:29:09 +00:00
David Anderson 268b694932 - client: if an app has avg_ncpus < 1, run it at above-idle priority
even if it doesn't use a coprocessor.
- scheduler: added an "nci" (non CPU intensive) plan class
    to sched_plan.cpp.  It declares the use of 1% of a CPU.

The above two changes are intended to allow the QCN app to
run at above_idle priority, which it needs in order to do 500Hz polling.

- API: the std::string version of boinc_resolve_filename()
    acts the same as the char[] version.

svn path=/trunk/boinc/; revision=16985
2009-01-22 19:51:04 +00:00
David Anderson 7cbce5f2ec - client: compile fix
svn path=/trunk/boinc/; revision=16970
2009-01-21 20:51:33 +00:00
David Anderson 28bc319055 - client: fetch work from non-CPU-intensive projects
svn path=/trunk/boinc/; revision=16969
2009-01-21 20:28:00 +00:00
David Anderson f33631cbbc - client: fix messages
svn path=/trunk/boinc/; revision=16960
2009-01-20 18:06:49 +00:00
David Anderson d3aa55c9b4 - client: remove limits on LTD.
svn path=/trunk/boinc/; revision=16942
2009-01-16 18:37:13 +00:00