Commit Graph

3648 Commits

Author SHA1 Message Date
David Anderson 47c889f002 - client: backoff overrides project-requested scheduler RPC.
Otherwise, if scheduler is down, we'll retry infinitely every 10 secs
	- client: remove auto_update.poll() (not used)

svn path=/trunk/boinc/; revision=17585
2009-03-10 22:14:16 +00:00
David Anderson 9de7bcb650 - compile fix
svn path=/trunk/boinc/; revision=17566
2009-03-09 20:36:22 +00:00
David Anderson 835a5288ac - client, GUI RPC: put <host_venue> back in get_state reply;
it's used by BoincView

svn path=/trunk/boinc/; revision=17560
2009-03-08 15:56:33 +00:00
Charlie Fenton e0865faeb5 client: Fix compiler warning on Mac
svn path=/trunk/boinc/; revision=17551
2009-03-07 00:10:26 +00:00
David Anderson e1b94a1e53 - client: add a new mechanism for assigning coproc instances to tasks,
and passing them the corresponding --device N cmdline args.
    This fixes a bug introduced in 17402 (Feb 26)
    that broke the --device feature,
    presumably causing problems on systems with multiple GPUs.

svn path=/trunk/boinc/; revision=17549
2009-03-06 23:10:45 +00:00
David Anderson c22b62f25b - scheduler: fix bugs in support for anonymous platform + coprocs
(app versions don't have a <coprocs> around coproc elements,
    may an oversight but let's stick with it).
    Anyway, I think it's working now.
- lib: remove "owner" array from COPROC.
    This was used in client to keep track of assignment of
    coprocessors to tasks, but we got rid of the reserve/free scheme.
    NOTE: this breaks the mechanism for passing --device N to apps;
    I'll have to do this another way.  Stay tuned.

svn path=/trunk/boinc/; revision=17543
2009-03-06 22:21:47 +00:00
David Anderson 4ccfb07065 - GUI RPC: the Jan 13 checkin removed some items from the
get_state() reply which are not included in our client interface.
    However, it turns out that BoincView uses these items; put them back.
- GUI RPC: set_debt() can set CUDA LTD as well as CPU

svn path=/trunk/boinc/; revision=17542
2009-03-06 20:15:13 +00:00
David Anderson f40dfabdbe - client: with anonymous platforms, app versions are identified
by app/platform/version/plan-class, same as normal

svn path=/trunk/boinc/; revision=17518
2009-03-05 23:31:00 +00:00
David Anderson e268dd735a - client: anon plaform app versions can specify coprocs
svn path=/trunk/boinc/; revision=17510
2009-03-05 18:23:54 +00:00
David Anderson e74f93c10d - client: if using anonymous platform, ignore (and complain about)
app versions in scheduler reply
- client: when reporting anonymous platform apps in sched request,
    don't include <file_info>s (not relevant to server)

svn path=/trunk/boinc/; revision=17507
2009-03-05 17:45:36 +00:00
David Anderson c750daed46 - client: reorganize and improve the logic for deciding
when to do a scheduler RPC:
    if user request or acct mgr request, ignore backoff and suspend via GUI;
    in all other cases honor both of these.

svn path=/trunk/boinc/; revision=17503
2009-03-04 22:55:57 +00:00
David Anderson 5cf568a180 - client: don't allow coproc apps in app_info.xml.
Otherwise we'll get stuck in a loop where the client asks for CPU work,
    and the scheduler sends jobs for what it thinks is a CPU app
    but is actually a coproc app.

    Eventually we should add coproc info to the app descriptions
    send in scheduler request,
    so that you can use anonymous platform for coproc apps.
    But let's wait on this.

- scheduler: compile fix for gcc 4.4.  Fixes #854

svn path=/trunk/boinc/; revision=17502
2009-03-04 22:12:16 +00:00
David Anderson fb1187e398 svn path=/trunk/boinc/; revision=17501 2009-03-04 22:07:16 +00:00
David Anderson c481086bc0 - client: show duration estimates for CPU and CUDA separately
- web: reverse Reply and Delete buttons in private msg page
    fixes #858

svn path=/trunk/boinc/; revision=17500
2009-03-04 21:02:18 +00:00
David Anderson 8689df5922 - client: run CPU benchmarks and contact ref site if platform changes
svn path=/trunk/boinc/; revision=17499
2009-03-04 19:17:38 +00:00
David Anderson 191af8c129 svn path=/trunk/boinc/; revision=17487 2009-03-03 23:30:32 +00:00
David Anderson 4a8b4fae2c - client: change garbage-collect logic.
old: reference-count files involved in a PERS_FILE_XFER
    new: if a PERS_FILE_XFER refers to an unreferenced file,
        delete it (and the associated FILE_XFER and HTTP_OP if present)
    May fix #366

svn path=/trunk/boinc/; revision=17486
2009-03-03 23:21:17 +00:00
David Anderson ce62c8ace5 - client: fix message: "idle instance" => "starved"
svn path=/trunk/boinc/; revision=17451
2009-03-03 17:45:03 +00:00
Charlie Fenton abcb5fe06c Fix compier warning.
svn path=/trunk/boinc/; revision=17438
2009-03-03 04:24:50 +00:00
Charlie Fenton 4af2c41657 client: Revise Apple idle time detection for compatibility with OS 10.6.
svn path=/trunk/boinc/; revision=17436
2009-03-03 03:50:02 +00:00
Charlie Fenton 080fe18356 client: Revise Apple idle time detection for compatibility with OS 10.6.
svn path=/trunk/boinc/; revision=17434
2009-03-03 03:28:04 +00:00
Charlie Fenton 2a18a8abeb client: Revise Apple idle time detection for compatibility with OS 10.6
svn path=/trunk/boinc/; revision=17432
2009-03-03 01:57:48 +00:00
David Anderson 63dfde353e svn path=/trunk/boinc/; revision=17421 2009-03-02 17:57:57 +00:00
David Anderson ebbf9d5636 - client: if we're going to do a scheduler RPC for reasons
other than work fetch (e.g., user request, project request)
    temporarily clear resource backoffs while deciding
    whether to request work.
    The backoffs are there only to delay RPCs,
    and we're going an RPC anyway.

svn path=/trunk/boinc/; revision=17416
2009-03-01 18:11:18 +00:00
David Anderson 346ac348b3 - client: RR sim FLOPS estimate for GPU jobs should reflect
fraction of time BOINC is running.


svn path=/trunk/boinc/; revision=17412
2009-02-27 21:44:39 +00:00
David Anderson fd5fc4a24b - client: fix bug that could cause scheduler RPC
to ask for work inappropriately,
    and tell user that it wasn't asking for work.
    Here's what was going on:
    There are two different structures with work request fields
    (req_secs, req_instances, estimated_delay):
    COPROC_CUDA *coproc_cuda
    and
    RSC_WORK_FETCH cuda_work_fetch.
    WORK_FETCH::choose_project() copied from cuda_work_fetch to coproc_cuda,
    but only if a project was selected.
    WORK_FETCH::clear_request() clears cuda_work_fetch but not coproc_cuda.

    Scenario:
    - a scheduler op is made to project A requesting X>0 secs of CUDA
    - later, a scheduler op is made to project B for reason
        other than work fetch (e.g., user request)
    - choose_project() doesn't choose anything,
        so the value of coproc_cuda->req_secs remains X
    - clear_request() is called but that doesn't change *coproc_cuda

    Solution: work-fetch code no longer knows about internals of
        COPROC_CUDA and is not responsible for settings its request fields.
        The copying of request fields from RSC_WORK_FETCH to COPROC
        is done at a higher level,
        in CLIENT_STATE::make_scheduler_request()

    Additional bug fix: estimated_delay wasn't being cleared in some cases.


svn path=/trunk/boinc/; revision=17411
2009-02-27 18:46:00 +00:00
David Anderson debef2bfc1 - boinccmd: make --get_messages output more readable
svn path=/trunk/boinc/; revision=17407
2009-02-27 00:53:15 +00:00
David Anderson 97b82d4685 - client: shuffle the startup code to avoid showing wrong prefs info
on first-time startup.
- client: don't do an RPC until we've done CPU benchmarks.
    We need the benchmark values to fill in app_version.flops

svn path=/trunk/boinc/; revision=17404
2009-02-26 22:41:48 +00:00
David Anderson fc94fa86b2 small fixes
svn path=/trunk/boinc/; revision=17403
2009-02-26 22:04:53 +00:00
David Anderson ed3e3b0063 - client: fix bug where if a GPU job is running,
and a 2nd GPU job with an earlier deadline arrives,
    neither job is executed ever.
    Reorganized things so that scheduling of GPU jobs is
    done independently of CPU jobs.
    The policy for GPU jobs:
    - always EDF
    - jobs are always removed from memory, regardless of checkpoint
    (GPU memory is not paged, so it's bad to leave an idle app in memory)

svn path=/trunk/boinc/; revision=17402
2009-02-26 21:36:41 +00:00
David Anderson f1fa1dc5dc - client: skip the above elapsed-time check for non-CPU-intensive jobs
svn path=/trunk/boinc/; revision=17400
2009-02-26 17:59:38 +00:00
David Anderson feab684b3d - client: abort jobs that are unstarted and past deadline
- client: abort runaway jobs based on elapsed time instead of CPU time.
    Specifically, abort jobs for which
    elapsed time > WU.rsc_fpops_bound / app_version.flops
    This policy works for
    1) GPU jobs (which may use little CPU time)
    2) jobs that run but because of bugs use little CPU time
        (e.g., because they're sleeping)
    whereas the old policy didn't.

svn path=/trunk/boinc/; revision=17399
2009-02-26 17:51:38 +00:00
David Anderson 41fe3e40bf - client: tag messages with project where possible; fixes #852
- client: show fetch share rather than run share in wfd message

svn path=/trunk/boinc/; revision=17398
2009-02-26 17:12:55 +00:00
David Anderson 31e7127776 - client: make timeout values into #defines
svn path=/trunk/boinc/; revision=17396
2009-02-26 03:24:39 +00:00
David Anderson d37d487247 compile fix
svn path=/trunk/boinc/; revision=17390
2009-02-26 01:00:46 +00:00
David Anderson 2e2eacc2f5 - client: if you put <host_venue> in global_prefs_override.xml,
it should select the venue from the network prefs.
    Now it does.


svn path=/trunk/boinc/; revision=17389
2009-02-26 00:52:50 +00:00
Eric J. Korpela 8f3abcc835 - Added checks for net/*.h, arpa/*.h, netinet/*.h and code to figure out
which of those files to include
    - Modified MAC address check to work on some non-Linux unixes.
      (mac_address.cpp)
    - Added suggested change to "already attached to project" checking.
      (ProjectInfoPage.cpp)
    - changed includes of standard c header files to their c++ equivalents
      (i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
    - replaced "using namespace std;" with more explicit "using std::function" in
      several files.
    - Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
      to the build environment. (boinc_platform.m4,configure.ac)
    - Changed build environment to not use -nostandardlibs unless we are using
      G++ and static linkage is specified. (configure.ac)
    - Added makefiles and package building files for solaris CSW package manager.
    - Fixed bug with attempting to find login name using logname. (configure.ac)
    - Added ifdef HAVE_* protection around some include files commonly found in
      sys.
    - Added support for unified binary for x86_64/i686-pc-solaris.
      (cs_platforms.cpp)
    - generate_host_cpid() now uses MAC address on non-linux unix.
      (hostinfo_network.cpp)
    - Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
      compilers. (boinc_set_compile_flags.m4)
    - Library compiles no longer depend upon the library extension or require
      the library to be prefixed with lib.
    - More fixes for fcgi builds.
    - Added declaration of "struct ether_addr" and ether_ntoa().  Have not yet
      implemented ether_ntoa() for machines that don't have it, or where it is
      buggy.  (unix_util.h)
    - Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
    - Fixed library Makefiles so that all required headers get installed.


svn path=/trunk/boinc/; revision=17388
2009-02-26 00:23:23 +00:00
David Anderson de2bacab35 - boinccmd: fix bug in --set_proxy_settings command
(it wasn't setting the "use_XXX" flags).  Fixes #776
- client: you can now include a <proxy_info> element
    in your cc_config.xml options.

TODO: the whole proxy info thing needs an overhaul:
- no separate "use_XXX" flags;
    non-empty http_server_name implies using HTTP proxy, etc.
- merge PROXY_INFO and GR_PROXY_INFO classes
- use XML_PARSER for parsing
- no PROXY_INFO element in HTTP_OP; just use gstate.proxy_info

svn path=/trunk/boinc/; revision=17379
2009-02-25 19:18:41 +00:00
David Anderson 3a8078bd5f - client: fix bugs in "abort_jobs_on_exit" feature:
- clear project backoffs when start abort sequence
    - don't back off projects if in abort sequence

svn path=/trunk/boinc/; revision=17375
2009-02-25 17:41:22 +00:00
David Anderson 20feef33f2 - fix possible crash on state file parse failures
svn path=/trunk/boinc/; revision=17371
2009-02-25 15:34:51 +00:00
David Anderson 3709c1e9f4 - scheduler: include driver version in the CUDA description string
storing in the database;
- web: display the above

svn path=/trunk/boinc/; revision=17341
2009-02-24 00:06:45 +00:00
David Anderson 125c90d1da - client: work-fetch bug fix: if we're fetching work for a starved
project, it most have no runnable jobs for ANY resource.
- client: work-fetch bug fix: when setting requests in the
    shortfall case, don't request anything if project is backed off
    or overworked for the resource.

svn path=/trunk/boinc/; revision=17338
2009-02-23 21:34:13 +00:00
David Anderson f257101d36 - client: fix work-fetch bug that caused infinite fetch;
cleanup/reorganization of work fetch logic

svn path=/trunk/boinc/; revision=17337
2009-02-23 20:35:52 +00:00
David Anderson 2574afb41c - client: more instances of showing project with message. Fixes #848
svn path=/trunk/boinc/; revision=17335
2009-02-23 04:54:04 +00:00
David Anderson 26f4f33b22 - client: print message if downloaded file has wrong size
- client: associate file xfer messages with a project; fixes #848

svn path=/trunk/boinc/; revision=17334
2009-02-22 20:54:33 +00:00
David Anderson 7001c6f7c5 - client: tweak the LTD calculation so that the largest debt
always tends towards zero

svn path=/trunk/boinc/; revision=17333
2009-02-22 15:40:44 +00:00
David Anderson 7c77fa14f3 - client: fix bug that can cause no GPU jobs to be scheduled
even when a GPU is free

svn path=/trunk/boinc/; revision=17329
2009-02-21 01:09:29 +00:00
David Anderson 3b31a9d803 - client: remove the "debt repair" mechanism added earlier today.
There are situations where multiple projects can legitimately
    have large negative LTD on a uniprocessor.
    Instead...
- client: add <zero_debts> option to cc_config.xml

svn path=/trunk/boinc/; revision=17328
2009-02-20 22:16:03 +00:00
David Anderson 6241fff21f - client: new work-fetch policy:
1) if an instance is idle, get work from highest-debt project,
        even if it's overworked.
    2) if resource has a shortfall, get work from highest-debt
        non-overworked project
    3) if there's a fetchable non-overworked project with no runnable jobs,
        get from from the highest-debt one.
    (each step is done first for GPU, then CPU)
    Clause 3) is new.
    It will cause the client to get jobs for as many projects as possible,
    even if there is no shortfall.
    This is necessary to make the notion of "overworked" meaningful
    (otherwise, any project with long jobs can become overworked).
    It also maintains as much variety as possible (like pre-6.6 clients).

    Also (small bug fix) if a project is overworked for resource R,
    request work for R only in case 1).


svn path=/trunk/boinc/; revision=17327
2009-02-20 21:44:39 +00:00
David Anderson f7f2f85b79 - client: if a project is at max backoff for a resource,
stop accumulating debt if it's at or around zero.
        This prevents other projects from being driven unboundedly negative.
    - client: if the number of overworked projects exceeds the number
        of device instances, clear debts; this indicates that an earlier
        client was buggy and produced bad debt values.

svn path=/trunk/boinc/; revision=17325
2009-02-20 18:37:27 +00:00
David Anderson ddb3d902c6 - client: message tweak
svn path=/trunk/boinc/; revision=17313
2009-02-19 21:51:13 +00:00
David Anderson 9e9a0effeb svn path=/trunk/boinc/; revision=17312 2009-02-19 21:45:33 +00:00
David Anderson bcefac3667 - client: message tweak
svn path=/trunk/boinc/; revision=17311
2009-02-19 21:42:43 +00:00
David Anderson 8973e39479 - client: don't complain that master URLs differ if it's only in case
svn path=/trunk/boinc/; revision=17310
2009-02-19 21:34:48 +00:00
David Anderson 72c57735eb - client: add more info to <work_fetch_debug> messages
svn path=/trunk/boinc/; revision=17309
2009-02-19 21:32:54 +00:00
David Anderson 442a54b30c compile fixes
svn path=/trunk/boinc/; revision=17301
2009-02-18 21:21:12 +00:00
David Anderson 3e98909ab6 - client: adjust debts at least every minute.
This fixes a bug that can cause debts to NEVER get updated.
- client: added "abort_jobs_on_exit" feature
    (available by --abort_jobs_on_exit cmdline
    or <abort_jobs_on_exit> in cc_config.xml).
    If set, when the client is exited by user request
    (this includes signals on Unix)
    it marks all pending jobs as aborted,
    and does a scheduler RPC to all projects with jobs.
    When these are completed the client exits.
    This is useful when BOINC is being used on grids
    where it is wiped clean after each run.

svn path=/trunk/boinc/; revision=17300
2009-02-18 19:47:02 +00:00
David Anderson b4bac32d75 - client: if "no more work" checked, don't request more work (duh!)
svn path=/trunk/boinc/; revision=17290
2009-02-18 16:21:30 +00:00
David Anderson 6a75b78de4 - client: don't ignore jobs with fraction_done=1 (but still running)
in RR simulation; we may need to mark them as deadline miss.
- web: replace & with &amp; various places


svn path=/trunk/boinc/; revision=17278
2009-02-17 17:39:57 +00:00
David Anderson 15e9a87315 - client: add a debug flag <dcf_debug> for seeing changes in DCF
- scheduler: add a limit on NVIDIA driver version for CUDA apps
    (default 17500)

svn path=/trunk/boinc/; revision=17277
2009-02-17 03:16:25 +00:00
David Anderson 2afd98ae70 - client: fix bug where master fetch failure doesn't clear request flag,
leading to infinite retry without backoff

svn path=/trunk/boinc/; revision=17269
2009-02-14 00:05:02 +00:00
Charlie Fenton ccca6db3d7 ss_app: Under sandbox security, set boincscr permissions the same as for BOINC Manager
svn path=/trunk/boinc/; revision=17255
2009-02-13 11:07:50 +00:00
David Anderson f29dea8e02 - client: bug fix for GPU pref
svn path=/trunk/boinc/; revision=17247
2009-02-12 19:34:27 +00:00
David Anderson 4526c0bb3d - client, web: add preference for not using GPU while computer busy
svn path=/trunk/boinc/; revision=17235
2009-02-12 18:04:30 +00:00
David Anderson 57bf393544 - client: debt_eligible() was returning false if the backoff was max.
This can lead to a situation where a project never gets work.
    Remove that clause.

svn path=/trunk/boinc/; revision=17226
2009-02-12 16:28:28 +00:00
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
Charlie Fenton be2b680f1d client: fix boinc_copy (again); Mac Mgr: fix bugs showing Mgr when minimized to Dock; fix XCode project for moved src file.
svn path=/trunk/boinc/; revision=16929
2009-01-16 06:41:52 +00:00
Eric J. Korpela 9a2868e715 -Made static linkage of BOINC libraries the default for client,
manager, and server components


svn path=/trunk/boinc/; revision=16928
2009-01-16 00:24:44 +00:00
David Anderson bea7ac23b2 - GUI RPC: add CUDA info to PROJECT struct
- manager: display CUDA info in project properties page
- manager: use struct assignment instead of copy() function

svn path=/trunk/boinc/; revision=16925
2009-01-15 21:46:47 +00:00
David Anderson 91e120b3f4 - scheduler: improve message formatting; add <debug_locality> flag
for locality scheduling messages

svn path=/trunk/boinc/; revision=16921
2009-01-15 20:23:20 +00:00
David Anderson f90dddc9a6 - client: clamp long term debts tp +- 1 week
- client: fix CUDA debt calculation
- client: don't accumulate debt if project->dont_request_more_work
- client: improves messages

svn path=/trunk/boinc/; revision=16909
2009-01-14 23:56:07 +00:00
David Anderson 3900bca13e - client: fix bug that caused estimated time to completion to increase
while processing suspended

svn path=/trunk/boinc/; revision=16907
2009-01-14 22:31:50 +00:00
David Anderson 1320392f30 - client/manager fixes
svn path=/trunk/boinc/; revision=16905
2009-01-13 23:24:54 +00:00
Eric J. Korpela 4e60ef3003 - STILL WORK TO BE DONE TO GET locale STUFF INSTALLED PROPERLY!!!
- Update to libtool 1.5.24
- build environment:  Major automake changes that I've been warning about
  for some time.
- Now uses libtool to build libraries.
- Builds separate boinc_fcgi and sched_fcgi libraries for use with 
  FCGI server components.
- New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on
  a library only if --with-libname[=DIR] is specified on the configure
  command line.  This is to allow inclusion of libraries when the 
  ssl, gtk, wxWidgets, or other configuration is incorrect for static
  libraries.
- Added a lot of "--with-*" for some libraries that might be required for
  static builds.
- The sea directory has been moved to packages/generic.  Changes to sea
  and the associated scripts might be required to better make use of the
  staging mechanism and shared libraries.
- Fixed includes of boinc_fcgi.h in many files.
- Fixed places where FCGI_FILE needs to be used implicitly.
- Fixed missing define of _SC_PAGESIZE on hosts that define only
  _SC_PAGE_SIZE.
- Moved build of boinc_cmd (and source file) from lib to client



svn path=/trunk/boinc/; revision=16904
2009-01-13 23:06:02 +00:00
David Anderson d93eb6da48 - GUI RPC: finish the changed started above;
update the way that app versions are identified.

Old: WORKUNIT contains version_num
    RESULT contains app_version_num (but only if running)

New: Keep old fields so new client works with old manager.
    RESULT contains version_num, plan_class
    Manager: if RESULT doesn't have version/plan_class
    (because talking to old client)
    look up app version based on WU version num.

svn path=/trunk/boinc/; revision=16903
2009-01-13 22:46:58 +00:00
David Anderson 85d65bd849 - client: GPU bug fix; compile warning fixes
svn path=/trunk/boinc/; revision=16901
2009-01-13 20:02:50 +00:00
David Anderson b2d7812130 - GUI RPC: add the following items to PROJECT_CONFIG
(corresponding to the get_project_config.php web RPC):
    - platforms: list of platforms supported by the project
    - sched_stopped: scheduler disabled
    - web_stopped: DB-driven web features disabled
    - min_client_version
- GUI RPC: add the following items to CC_STATE:
    - platforms: list of platforms supported by the client
        (this replaces the unused <platform_name>)
- GUI RPC: add the following items to PROJECT_LIST_ENTRY
    (entry in the "all projects" list):
    - platforms: list of platforms supported by the project
- GUI RPC: move APP_VERSION pointer from WORKUNIT to RESULT;
    include plan class in APP_VERSION lookup.
    This completes the change of March 2008,
    and allows the Manager to work correctly when a project
    has two different app versions of the same (app, platform, version)
    running on a client at once (e.g., a CPU and a GPU app)
- get_project_config.php: remove logic that checks client version.
    This page is accessed by PHP, not just by client
- web: add link to forum page to get forum as RSS

svn path=/trunk/boinc/; revision=16900
2009-01-13 19:34:04 +00:00
David Anderson 2170b45d41 - client: work_req_seconds is CPU req, not max(CPU req, CUDA req).
In order to work with the 6.7 client,
	projects with both CUDA and CPU jobs must use the newest scheduler code.

svn path=/trunk/boinc/; revision=16868
2009-01-11 05:14:47 +00:00
David Anderson f6ab5f7b0a svn path=/trunk/boinc/; revision=16863 2009-01-10 01:05:05 +00:00
David Anderson 132cc6bba3 - client: debugging CUDA-related stuff
- client: if reset a project, clear its overall and per-resource backoffs

svn path=/trunk/boinc/; revision=16862
2009-01-10 00:48:22 +00:00
David Anderson 04072e887f - client: connected_frac -1 is OK; fixes #821
svn path=/trunk/boinc/; revision=16859
2009-01-09 19:33:39 +00:00
Charlie Fenton 3fe77eb02a client: fix compiler warnings
svn path=/trunk/boinc/; revision=16840
2009-01-08 09:53:32 +00:00
David Anderson 0899975be5 - get_project_config: don't send error text if no terms_of_use.txt
- client: compute and store project work-fetch attributes

svn path=/trunk/boinc/; revision=16837
2009-01-08 00:41:15 +00:00
David Anderson 2860574fa5 compile fixes and debug message fixes
svn path=/trunk/boinc/; revision=16836
2009-01-08 00:20:04 +00:00
David Anderson 8740ffdc94 - client: more work-fetch stuff.
No more per-project shortfall.
    It's getting pretty close.

svn path=/trunk/boinc/; revision=16765
2009-01-03 06:01:17 +00:00
David Anderson 72937e5c4f win compile fixes
svn path=/trunk/boinc/; revision=16756
2008-12-31 23:30:38 +00:00
David Anderson 19fe37d923 svn path=/trunk/boinc/; revision=16755 2008-12-31 23:14:57 +00:00
David Anderson 8c591e31df - client: first whack at new work-fetch logic. Very preliminary.
svn path=/trunk/boinc/; revision=16754
2008-12-31 23:07:59 +00:00
David Anderson 2dc7056ee0 - client: code shuffling
- scheduler: fix typo in msg

svn path=/trunk/boinc/; revision=16750
2008-12-30 19:01:25 +00:00
David Anderson b24d947aaa - client: work fetch: skip project if zero CPU shortfall
and currently have coproc jobs.

svn path=/trunk/boinc/; revision=16746
2008-12-27 03:43:13 +00:00
David Anderson e3216b204b - scheduler: move EDF sim code into check_deadline(), so that the
exceptional cases (e.g., send at least one job to a host with no work)
    apply whether using EDF or basic check
- client: don't accept 0 for active/on/connected frac; set to 1

svn path=/trunk/boinc/; revision=16744
2008-12-26 22:56:42 +00:00
David Anderson 0b18bd79d0 - client, Win: don't leak thread handlers
fixes #808


svn path=/trunk/boinc/; revision=16743
2008-12-24 23:19:40 +00:00
David Anderson fae0903c0f - scheduler: store CUDA total memory as a double,
since it can be 4GB or larger


svn path=/trunk/boinc/; revision=16737
2008-12-22 22:12:57 +00:00
David Anderson e6c6fbed07 - client: error checking for on/connected/active_frac values from XML
svn path=/trunk/boinc/; revision=16728
2008-12-19 20:55:49 +00:00
David Anderson 962c491f42 - client: add <no_gpus> config option
svn path=/trunk/boinc/; revision=16694
2008-12-16 00:09:51 +00:00
David Anderson b3bc71047e - client, CUDA detection:
1) report all devices found
    2) use the specs of the fastest one

svn path=/trunk/boinc/; revision=16669
2008-12-11 21:44:22 +00:00
David Anderson 7ce983d8a7 - client: allow CPU saturation even if GPU running, all platforms
(once GPUgrid.net fixes it app, this isn't needed anymore)

svn path=/trunk/boinc/; revision=16663
2008-12-09 21:00:33 +00:00
David Anderson cd4ca5fb17 - client: fix calculation of a job's FLOPS rate in round-robin simulation
svn path=/trunk/boinc/; revision=16662
2008-12-09 20:01:01 +00:00
David Anderson fbb899f1c0 - client: in round-robin simulation, don't count a project in
total resource share if it has coproc jobs and no CPU jobs.

svn path=/trunk/boinc/; revision=16652
2008-12-08 23:00:23 +00:00
David Anderson af183bc2db - client: in round-robin simulation, remove code that sets CPU shortfall
for projects with no active results.
        This is now wrong because there coproc apps might have pending results.
        Also remove nidle_cpus > 0 conditional that increments CPU shortfall;
        I think this is vestigial code.

svn path=/trunk/boinc/; revision=16646
2008-12-08 18:26:25 +00:00
David Anderson ea4e6f8f21 - client: tweak CPU scheduling policy. When there's a coproc job:
Windows: don't saturate CPUs
    Unix: saturate CPUs

svn path=/trunk/boinc/; revision=16644
2008-12-07 22:06:32 +00:00
David Anderson edf0ab1631 - client: app_info.xml's are parsed before p_fpops is known,
so avp->fpops is zero.
    Fix this by filling in zero avp->fpops later on.

svn path=/trunk/boinc/; revision=16633
2008-12-06 03:19:52 +00:00
David Anderson a2119013d2 svn path=/trunk/boinc/; revision=16619 2008-12-04 17:53:50 +00:00
David Anderson 81adb3186f - client: parse checkpoint_elapsed_time from state file;
if missing, use checkpoint CPU time.
    - client: enforce CPU schedule: if we're running a coproc job,
        keep CPU utilization strictly less than NCPUS.

svn path=/trunk/boinc/; revision=16616
2008-12-04 03:51:14 +00:00
Charlie Fenton 6d18e79466 client: fix compiler warning.
svn path=/trunk/boinc/; revision=16615
2008-12-04 02:18:01 +00:00
David Anderson ea0146d154 - client: fix calculation of CPU shortfall;
don't fetch work from projects with zero CPU shortfall

svn path=/trunk/boinc/; revision=16613
2008-12-03 23:30:54 +00:00
David Anderson 79fb6e969e - Remove the notion of "CPU efficiency" from both client and server.
This wasn't being measured correctly for coproc/multithread apps,
    and its effect is now subsumed in DCF.

svn path=/trunk/boinc/; revision=16610
2008-12-03 19:50:06 +00:00
David Anderson 89548f04da - client: compute duration_correction_factor based on elapsed time, not CPU time
(otherwise it doesn't work for coproc or multi-proc apps)
    - client: in estimate of job completion time,
        weight the estimate based on fraction done more heavily
        (quadratic rather than linear)

svn path=/trunk/boinc/; revision=16603
2008-12-02 22:19:39 +00:00
David Anderson 122f61996a - client: estimate time to completion based on elapsed time, not CPU time
(improves estimates for coproc apps)

svn path=/trunk/boinc/; revision=16600
2008-12-02 17:48:29 +00:00
David Anderson 78199c2f5e compile fixes
svn path=/trunk/boinc/; revision=16599
2008-12-02 16:48:25 +00:00
David Anderson 84f1193a9d - client: use FLOPs, rather than CPU time,
as the basis for estimating job completion times.
    This should improve estimates for GPU apps,
    and prevent the DCF from getting messed up.

svn path=/trunk/boinc/; revision=16598
2008-12-02 03:58:32 +00:00
David Anderson e3fd56f5e8 - client: work-fetch tweak: don't increment overall CPU shortfall
if any jobs pending in simulation

svn path=/trunk/boinc/; revision=16595
2008-12-01 22:06:24 +00:00
David Anderson 07bd768e9d - server: add -sleep_interval args to file_deleter and transitioner
(from Nicolas; fixes #783)


svn path=/trunk/boinc/; revision=16576
2008-11-26 19:09:27 +00:00
Charlie Fenton b5d88d4e8c client: Fix error from changeset 14415 which caused Mac client to call daemon() if it was passed -daemon argument, causing problems using launchd with KeepAlive option; fixes #782.
svn path=/trunk/boinc/; revision=16565
2008-11-26 13:43:10 +00:00
David Anderson 372dd820ad - client, Win: 32-bit client running on a 64-bit machine
should report winx64 as primary platform


svn path=/trunk/boinc/; revision=16559
2008-11-25 19:04:27 +00:00
David Anderson fbd50f4ec4 - client: if an exclusive app is running, suspend network
as well as processing

svn path=/trunk/boinc/; revision=16552
2008-11-24 21:27:43 +00:00
David Anderson 57639bdaae - client: in round-robin simulation, only increment CPU shortfall
(per-project or overall) if there are no pending tasks.
        This is needed when there are coproc (i.e. CUDA) jobs;
        CPUs may be idle because pending jobs are waiting for active jobs
        to release coprocs.
        In this situation the CPU idleness should not be counted as shortfall;
        otherwise (if there are only coproc jobs) there will always be a shortfall,
        and the client will fetch infinite work.

svn path=/trunk/boinc/; revision=16545
2008-11-24 18:57:04 +00:00
David Anderson 9ea3663f83 - client: use BELOW_NORMAL_PRIORITY_CLASS instead of 0;
remove specious message

svn path=/trunk/boinc/; revision=16536
2008-11-19 20:20:04 +00:00
David Anderson 9967112f60 - client: if bind fails, print port#
- web: don't randomize order of profiles
    (fixes checkin of 28 Oct)

svn path=/trunk/boinc/; revision=16520
2008-11-18 17:33:13 +00:00
Rom Walton 50a70c8c80 - CLI: Fix a build break when creating new stable branches.
client/
        client_state.cpp

svn path=/trunk/boinc/; revision=16508
2008-11-17 16:39:20 +00:00
David Anderson 98d6931d63 - client (Unix): if app uses < 1 CPU, run at nice 10 (not 0)
- client: suppress specious error message

svn path=/trunk/boinc/; revision=16496
2008-11-14 22:08:50 +00:00
David Anderson fd8470af2a - client: don't fclose() time_stats_log if it's NULL
Fixes #772


svn path=/trunk/boinc/; revision=16478
2008-11-11 23:07:36 +00:00
David Anderson 5ac0aee6ce - client: add OS name into the hash for host CPID
(for multi-OS hosts)
- scheduler: use sqrt(x) instead of x in stop-checking
    for single redundancy.

svn path=/trunk/boinc/; revision=16433
2008-11-05 20:27:04 +00:00
David Anderson 5141a6eabe David 5 Nov 2008
- client: make host CPID a function of:
        MAC addresses + hostname + IP addr
        This means that a given host will generally always get the same CPID.
        Helpful e.g. on grids where the client gets installed repeatedly.
        From Artyom Sharov.

    client/
        hostinfo_network.cpp
    lib/
        hostinfo.cpp
        mac_address.cpp,h
    win_build/
        boinc_cli_curl.vcproj
        libboinc.vcproj

svn path=/trunk/boinc/; revision=16432
2008-11-05 20:11:45 +00:00
David Anderson 77803431ea - client: preemptability ordering was messed up
svn path=/trunk/boinc/; revision=16400
2008-11-04 01:00:43 +00:00
David Anderson ae95ae0527 - file_deleter: add -input_files_only and -output_files_only options.
If you store input and output files on different servers,
    you can run 2 file_deleters, each one on the same machine
    as the files it's going to be deleting.
- file_deleter: add -help option and usage()

client/
    cpu_sched.cpp
    sched/
        file_deleter.cpp

svn path=/trunk/boinc/; revision=16397
2008-11-03 22:56:16 +00:00
David Anderson c65355c430 svn path=/trunk/boinc/; revision=16396 2008-11-03 19:30:07 +00:00
David Anderson 5b59556a43 - client: fix bug that caused occasional assert in pop_heap()
for the preemptable_task_list.
        The problem was that the ordering predicate (more_preemptable())
        could change on the fly, making the heap inconsistent.
        Instead, we create a vector, sort it by increasing preemptability,
        then pop off the end.

svn path=/trunk/boinc/; revision=16395
2008-11-03 19:29:04 +00:00
Charlie Fenton deaeae4eda client: fix compiler warning indicating real error in RR simulation
svn path=/trunk/boinc/; revision=16391
2008-11-03 10:19:25 +00:00
David Anderson 0ded726fe7 - client: fix a long-standing error: if prefs say leave X GB free,
and BOINC is using Y GB, and there are Z GB free,
        the limit on BOINC is Y + Z - X (not Z - X).

svn path=/trunk/boinc/; revision=16388
2008-11-02 20:09:59 +00:00
David Anderson 15b58e582d - client, scheduler: there were a few places where we had 1e9
instead of 1 gig (2^20)


svn path=/trunk/boinc/; revision=16387
2008-11-01 23:13:55 +00:00
David Anderson 719921bfaf - client: fix the updating of CPU time left in RR simulation;
don't print msgs about non-CPU-intensive projects.

svn path=/trunk/boinc/; revision=16386
2008-11-01 21:10:08 +00:00
Charlie Fenton 046146317e client: fix compiler warning
svn path=/trunk/boinc/; revision=16383
2008-11-01 00:14:20 +00:00
David Anderson 9987f9d245 - client: revise round-robin simulation to take variable avg_ncpus into account
svn path=/trunk/boinc/; revision=16366
2008-10-30 21:07:35 +00:00
Rom Walton 1f1cc48a4c - client: include precompiled header in rr_sim.cpp so memory
leak detection will work.
    - MGR: Have the BaseFrame call a function to determine if the
        selection list should be saved instead of traversing
        the application pointer.  Each view just overrides the function
        returning a true/false value.  We don't have to worry about null
        pointers and the like.
    - MGR: BOINCGUIApp should never need to know how either the views
        work or the document.  Move the code that determines which
        RPCs should be fired into each of the views.  Have the document
        look for it there.
    - MGR: Reduce duplicate code for hiding and showing an application
    - MGR: Move some Windows and Mac specific code into functions
        and streamline the application startup and shutdown rountines.
    - MGR: Move the event processing that was in BOINCGUIApp into the
        BaseFrame.
    - MGR: General cleanup.
    - MGR: Doxygen comments.
    - MGR: Cleanup some warnings.

    client/
        rr_sim.cpp
    clientgui/
        AdvancedFrame.cpp, .h
        AsyncRPC.cpp, .h
        BOINCBaseFrame.cpp, .h
        BOINCBaseView.cpp, .h
        BOINCClientManager.cpp
        BOINCGUIApp.cpp, .h
        BOINCTaskBar.cpp
        MainDocument.cpp, .h
        sg_BoincSimpleGUI.cpp, .h
        ViewProjects.cpp, .h
        ViewTransfers.cpp, .h
        ViewWork.cpp, .h
        WelcomePage.cpp
    win_build/installerv2/
        BOINC.ism
        BOINCx64.ism
    win_build/
        sim.vcproj

svn path=/trunk/boinc/; revision=16357
2008-10-29 22:44:55 +00:00
David Anderson 51c993542e - client: cleaned up CPU scheduler logic somewhat
svn path=/trunk/boinc/; revision=16356
2008-10-29 22:13:04 +00:00
David Anderson 44d2ab532b - client: the preemptability order was wrong
svn path=/trunk/boinc/; revision=16355
2008-10-29 18:21:45 +00:00
David Anderson 508d179a61 compile fix
svn path=/trunk/boinc/; revision=16344
2008-10-29 00:00:01 +00:00
David Anderson 48ba503db3 - code shuffle
svn path=/trunk/boinc/; revision=16340
2008-10-28 22:38:00 +00:00
David Anderson c2ebbd899d win compile
svn path=/trunk/boinc/; revision=16339
2008-10-28 22:10:09 +00:00
David Anderson 2d1d47de15 - client: move round-robin simulation to its own file
- web: check for profile existence before trying to show it
- file deleter: add some debugging msgs

svn path=/trunk/boinc/; revision=16338
2008-10-28 21:59:25 +00:00
David Anderson 5518259dd0 - client: accept --insecure flag even if not compiled with -DSANDBOX
- manager: pass --insecure flab only if compiled with -DSANDBOX
        (from Nicolas; fixes #762)

svn path=/trunk/boinc/; revision=16328
2008-10-28 02:21:26 +00:00
David Anderson d9aef115bc - client: fix crash when sched_op_debug is enabled
svn path=/trunk/boinc/; revision=16326
2008-10-27 23:21:33 +00:00
David Anderson eae866f743 - client: for CPU throttling, don't suspend apps that
are non-CPU-intensive or that use < 1 CPU (e.g., CUDA)
	- client: get rid of spurious "internal error,
		expected process to be executing" msg
	- diag: don't check heap on every alloc
	- fix a few compile warnings

svn path=/trunk/boinc/; revision=16323
2008-10-27 20:17:22 +00:00
David Anderson a726775e94 - client: ignore max_cpus if max_ncpus_pct is nonzero
svn path=/trunk/boinc/; revision=16318
2008-10-25 15:21:28 +00:00
David Anderson 47086dbbad - client: --help: show all options, and alphabetize them
svn path=/trunk/boinc/; revision=16307
2008-10-23 21:56:08 +00:00
Rom Walton 727b9a19ee - client: the max percent needs to be based on the max cpu
preference not the total number of CPUs if we are 
        actually calculating the min of both of them.
    
    client/
        cpu_sched.cpp

svn path=/trunk/boinc/; revision=16289
2008-10-23 13:59:00 +00:00
David Anderson 882c0cde50 - client: print #CPUs if not all
svn path=/trunk/boinc/; revision=16270
2008-10-22 22:25:16 +00:00
David Anderson 760cd90c7b - client: restore support for max_ncpus preference.
This and max_ncpus_pct can both be specified.
    If both are specified, we take the min.

svn path=/trunk/boinc/; revision=16268
2008-10-22 21:25:26 +00:00
David Anderson 2952d1f644 - client: if "leave in memory" pref changes, quit suspended tasks
svn path=/trunk/boinc/; revision=16234
2008-10-20 16:37:20 +00:00
David Anderson 20d9f92a65 - client: new config flags
<network_test_url>: where to go to see if network is up
    <client_version_check_url>: where to get list of client versions
    <client_download_url>: where to direct user to get new version
- manager: some different text for WCG version


svn path=/trunk/boinc/; revision=16208
2008-10-14 23:07:40 +00:00
David Anderson a4380ee9a6 - web: make some things in sample front page translatable.
TODO: make them all translatable.
- manager: compile fix for Linux

svn path=/trunk/boinc/; revision=16207
2008-10-14 21:40:14 +00:00
David Anderson e24e551bd8 - client: clarify and fix the semantics of "next RPC time".
Here's are the new semantics: a scheduler reply can include
        <next_rpc_delay>
            Make another RPC ASAP after this amount of time elapses.
            This is specified by the <next_rpc_delay> element in config.xml.
        <request_delay>
            Don't make another RPC until this amount of time elapses.
            This is sent automatically (and sometimes with large delays)
            by various parts of the scheduler.
        next_rpc_delay now "overrides" request_delay in the sense that
        request_delay is ignored if it's greater than next_rpc_delay.

        In addition: the client maintains a min_rpc_time which is set based
        on request_delay and also by various exponential backoff schemes.
        new_rpc_delay now overrides this as well, in the same sense.

svn path=/trunk/boinc/; revision=16206
2008-10-14 21:16:04 +00:00
David Anderson bc35ee14cf - client fixes
svn path=/trunk/boinc/; revision=16195
2008-10-13 18:16:11 +00:00
David Anderson a42ba237f3 - client: correctly null-terminate file upload handler reply
- web: fix typo

svn path=/trunk/boinc/; revision=16189
2008-10-11 18:13:33 +00:00
David Anderson 5957d58668 - client: report job resources even when no active task
svn path=/trunk/boinc/; revision=16188
2008-10-10 20:05:34 +00:00
David Anderson a5575875d6 - client: print a message, and recompute ncpus, when reread cc_config.xml
svn path=/trunk/boinc/; revision=16187
2008-10-10 17:23:51 +00:00
David Anderson 89e6131dec compile fix
svn path=/trunk/boinc/; revision=16179
2008-10-09 22:58:28 +00:00
David Anderson e43e8a408d - client: major changes to enforce_schedule() to handle GPUs
svn path=/trunk/boinc/; revision=16178
2008-10-09 22:44:45 +00:00
David Anderson 37364ab657 - client: show message when suspending because of exclusive app
- web: remove file_get_contents() workaround for PHP4
- web: If Akismet or ReCaptcha failure,
    display the form again with a warning message at the top.
    That way the user doesn't lose the text they just typed.

svn path=/trunk/boinc/; revision=16175
2008-10-09 18:28:55 +00:00
David Anderson ff2df1eba6 - client: use different temp file names for different purposes
- client: change logic in a pathological file xfer case
    (we asked for tail of file, proxy returned whole file)
    to report fopen() errors correctly, and to close all open files

svn path=/trunk/boinc/; revision=16150
2008-10-07 12:45:06 +00:00
David Anderson 7512f94f51 - client: show est CPC time of jobs returned by sched RPC,
if sched_op_debug; fixes #256

svn path=/trunk/boinc/; revision=16149
2008-10-07 01:51:30 +00:00
David Anderson f17c0879de - changed some comments for Doxygen
svn path=/trunk/boinc/; revision=16130
2008-10-04 23:44:24 +00:00
David Anderson 0cf82b2746 - client: it a file upload fails for a job that's in progress,
abort the task.  Otherwise we end up reporting the job
    while the app is still running.

svn path=/trunk/boinc/; revision=16128
2008-10-04 16:00:28 +00:00
David Anderson 6070af4fea - client: fix bugs in coprocessor scheduling;
add new <coproc_debug> log flag

svn path=/trunk/boinc/; revision=16122
2008-10-03 21:55:34 +00:00
David Anderson 7019bb3192 - Makefile fix
- client: remove extraneous message
- wrapper: open stderr/stdout in append mode, not write

svn path=/trunk/boinc/; revision=16118
2008-10-03 05:13:25 +00:00
David Anderson d127c3fe46 - tweaks
svn path=/trunk/boinc/; revision=16117
2008-10-02 21:25:40 +00:00
David Anderson 30aecfc6f8 - debug "exclusive app" feature
svn path=/trunk/boinc/; revision=16090
2008-09-29 18:51:46 +00:00
David Anderson f0e0e8f977 - client: add "exclusive app" feature. If you put
<exclusive_app>foo.exe</exclusive_app>
    in your cc_config.xml, BOINC will suspend computing
    whenever foo.exe is running (e.g., a game).

    Eventually we might want to put the interface in preferences
    instead of cc_config.xml

svn path=/trunk/boinc/; revision=16087
2008-09-29 16:47:10 +00:00
David Anderson 0b6197dc7d svn path=/trunk/boinc/; revision=16085 2008-09-29 03:04:39 +00:00
David Anderson 85d33cb974 fixed XML error
svn path=/trunk/boinc/; revision=16082
2008-09-27 16:12:47 +00:00
David Anderson e734007dd9 - client: don't lower priority of apps that use >0 coprocessors and <1 CPU.
Otherwise they don't run efficiently.

svn path=/trunk/boinc/; revision=16072
2008-09-26 22:56:42 +00:00
David Anderson 98cfb8d3b0 - rename .C files to .cpp so that Doxygen will work
svn path=/trunk/boinc/; revision=16069
2008-09-26 18:20:24 +00:00
David Anderson 95adc2f8fd - Add the ability to exclude certain URLs from the use of proxies.
E.g. if you're running a project locally,
    while attached to outside projects via a proxy.
    Currently accessible only via the Manager's Options dialog.
    From Frank Weiler.

svn path=/trunk/boinc/; revision=16061
2008-09-25 23:31:56 +00:00
Frank Weiler 2a3e79a53d no proxy for ... support included
svn path=/workspaces/fweiler/boinc/; revision=16055
2008-09-25 15:44:45 +00:00
David Anderson a9d346b20e svn path=/trunk/boinc/; revision=16046 2008-09-25 02:21:38 +00:00
David Anderson b329414a45 - client/manager: show # CPUs and coprocessors in task display
svn path=/trunk/boinc/; revision=16045
2008-09-25 02:00:29 +00:00
David Anderson a370622854 compile fix
svn path=/trunk/boinc/; revision=16044
2008-09-25 01:44:25 +00:00
David Anderson a4d5d49b28 - client: attempt to fix CPU sched bug in the presence of GPUs
(if there was an idle GPU, it would run unboundedly many CPU jobs)

svn path=/trunk/boinc/; revision=16043
2008-09-25 01:04:53 +00:00
David Anderson 1f9b1891db - client: add <sandbox> element to scheduler request.
Some projects (GPUgrid, QCN) don't work on some platforms
    if sandboxing is used.
    Better to send an error message than send jobs.
- get rid of a few compiler warnings


svn path=/trunk/boinc/; revision=16042
2008-09-24 23:42:56 +00:00
David Anderson d0102629e7 - client: print error msg if missing acct mgr info
- manager: last arg to acct_mgr_rpc is bool, not bool*

svn path=/trunk/boinc/; revision=16023
2008-09-18 22:14:45 +00:00
David Anderson 91c3d4a914 client: CPU scheduler keeps trying to schedule jobs if either
not all CPUs are used or not all coprocessors are used
(avoid GPU idleness)


svn path=/trunk/boinc/; revision=15972
2008-09-06 09:52:36 +00:00
David Anderson 5ba9c007a5 - added some code for generating x.509 signatures
svn path=/trunk/boinc/; revision=15965
2008-09-04 15:13:54 +00:00
David Anderson 4bf97d0e3f - compile fixes for Win
svn path=/trunk/boinc/; revision=15960
2008-09-04 13:18:51 +00:00
David Anderson 096337a241 - Add support for code-signing using x509 certificates
(from Attila Marosi)


svn path=/trunk/boinc/; revision=15958
2008-09-04 12:50:54 +00:00
David Anderson f6b1ae85b9 - certificate stuff
svn path=/trunk/boinc/; revision=15957
2008-09-04 12:17:58 +00:00
Charlie Fenton 7aa3423b96 switcher: update comment on calling API
svn path=/trunk/boinc/; revision=15948
2008-09-03 00:21:25 +00:00
David Anderson ca00559575 - client (Unix): don't assume that LD_LIBRARY_PATH is defined
svn path=/trunk/boinc/; revision=15944
2008-08-28 18:41:18 +00:00
David Anderson 63b49cd290 - client: get BOINCView to work again;
allow one auth failure before closing connection.

svn path=/trunk/boinc/; revision=15942
2008-08-26 20:49:54 +00:00
David Anderson 0de5ee8714 svn path=/trunk/boinc/; revision=15922 2008-08-22 04:50:30 +00:00
David Anderson c7695c1812 - client: in GUI RPC, allow <auth1> and <auth2> if the peer
is already authenticated.
        This is needed to make BOINCView work;
        it authenticates before every operation for some reason.

svn path=/trunk/boinc/; revision=15920
2008-08-21 21:49:05 +00:00
David Anderson 6d61da36a6 - fix compile warnings and Manager error
svn path=/trunk/boinc/; revision=15905
2008-08-20 18:24:08 +00:00
David Anderson 87cf35f89b - client: fix CPU scheduling logic related to coprocessors
Old: when checking whether an app can be run,
        check for sufficient coprocessors relative to
        the current coprocessor usage.
        Bug: it there are 2 CUDA jobs,
        the scheduler will decide to run both.
        enforce_scheduler() will only be able to run one,
        and the other CPU will be idle.
    New: include coprocessor usage (along with RAM and CPUs)
        in the check, and do a simulated reservation.
        In the above scenario, the scheduler will select
        one CUDA app and one non-CUDA app.

svn path=/trunk/boinc/; revision=15904
2008-08-20 17:34:18 +00:00
Rom Walton 9254672696 - client: Update the Windows version detection code to account for
Windows 7 and Windows Server 2008 "R2".
        
    client/
        hostinfo_win.C

svn path=/trunk/boinc/; revision=15873
2008-08-18 18:47:07 +00:00
David Anderson 9f6c4a133e - client: don't leak handles to shared-mem files
- client: don't leak process handles when abort jobs
- client: if an app exits or we kill it, always destroy the shmem segment.
- web: more HTML 4.01 Transitional conformity changes

svn path=/trunk/boinc/; revision=15865
2008-08-16 20:59:53 +00:00
Rom Walton 4aa95488a7 - WIN: remove accelerators from the HOST_INFO class. It doesn't appear
to be used by anybody, and was only meant as a stop-gap until
        we had some formal way to deal with co-processors.
        
    client/
        hostinfo_win.C
    lib/
        hostinfo.C, .h

svn path=/trunk/boinc/; revision=15849
2008-08-15 04:59:09 +00:00
Rom Walton d1fda159e4 - WIN: Update OS Detection code.
NOTE: Holy cow, Between Vista and Server 2008 there are now
          26 different SKUs.
          
    client/
        hostinfo_win.C

svn path=/trunk/boinc/; revision=15834
2008-08-14 13:39:09 +00:00
Rom Walton 106b5f1c92 - WIN: Remove any remaining references to Seed and CPDNBBC.
client/win/
        boinc_cli.rc
        boinc_cmd.rc
    clientgui/
        BOINCGUIApp.rc
    clientgui/res/
        seed16.xpm
        seed32.xpm
        seedamwizard.xpm
        seedapwizard.xpm
    clientlib/win/
        boinc_dll.rc
    clientscr/
        boinc_ss.rc
    clientscr/res/
        seed.bmp

svn path=/trunk/boinc/; revision=15832
2008-08-14 03:08:15 +00:00
Rom Walton 4a6fd43a5c - WIN: Remove Visual Studio 2003 solution and project files
- WIN: Fix build files so all build configurations work again
    - WIN: Create the 'Samples - Debug' and 'Samples - Release'
        configurations to build sample files.  Leave the previous
        configurations to build just the client software.
    - WIN: Remove Seed project files
        
    client/win/
        boinc.exe.manifest
        boinc_cli_2003.rc
        boinc_cmd_2003.rc
        boinccmd.exe.manifest
    clientgui/
        BOINCGUIApp_2003.rc
        boincmgr.exe.manifest
    clientlib/win/
        boinc.dll.manifest
        boinc_dll_2003.rc
    clientscr/
        boinc.scr.manifest
        boinc_ss_2003.rc
    samples/win_build/
        samples_2003.sln
    win_build/
        boinc.sln
        boinc_2003.sln
        seed.sln
        <Various .vcproj files>

svn path=/trunk/boinc/; revision=15831
2008-08-14 02:58:05 +00:00
Rom Walton 5d915bf830 - Update copyright strings in various Windows resource files.
client/win/
        boinc_cli.rc
        boinc_cli_2003.rc
        boinc_cmd.rc
    clientgui/
        BOINCGUIApp.rc
        BOINCGUIApp_2003.rc
    clientlib/win/
        boinc_dll.rc
        boinc_dll_2003.rc
    clientscr/
        boinc_ss.rc
        boinc_ss_2003.rc
    clienttray/
        boinc_tray.rc

svn path=/trunk/boinc/; revision=15827
2008-08-13 20:44:08 +00:00
David Anderson 104655a358 - client and server: add "len" arg to xml_escape() and xml_unescape()
(prevent buffer overrun).
    Also remove 1024 char limit for team description in db_dump.

svn path=/trunk/boinc/; revision=15820
2008-08-13 17:27:13 +00:00