Commit Graph

93 Commits

Author SHA1 Message Date
David Anderson 5c0d5d371e - client: compute project scheduling priority more efficiently
- client: if an app version can't be used because the GPUs it needs
    are all excluded, mark it and all its results as "coproc missing"
    so that they won't be looked at in scheduling logic.


svn path=/trunk/boinc/; revision=24317
2011-10-03 06:18:58 +00:00
David Anderson b7f1aa0226 - client: fix a bug reported by Jacob Klein,
where work fetch didn't work right in the presence of
    multiple GPUs and <exclude_gpu> config options.
    For example: suppose:
        - you have 2 GPUs and 2 projects
        - Project A is excluded from GPU 1
        - you have lots of jobs for project A
    Then the client won't try to fetch jobs from project B.

    The problem had 2 parts:
    a) round-robin simulation wasn't taking GPU exclusions into account.
        In the above example, it would think that both GPUs had jobs.
        I fixed this by computing the # of GPUs from each project
        is excluded, and using this in the RR simulation.
    b) Once this was done, I needed to make the client
        request GPU jobs from project B rather than project A.
        I did this with following policy:
        If a project has excluded GPUs of a given type,
        and has a runnable job of that type,
        don't ask it for more work of that type.

    Notes:
    - the policy in b) is crude, and it means that work-buffer
        preferences are ignored in some cases.
    - neither a) nor b) takes into account app-level exclusions.

    I could fix both of these with a lot of work,
    but I'd rather move to a model in which dissimilar GPUs
    are modeled as different resources,
    which would remove the need for the <exclude_gpu> mechanism
    in the first place.

- web: remove extraneous ) at end of button tooltips


svn path=/trunk/boinc/; revision=24312
2011-10-01 16:23:28 +00:00
Charlie Fenton 363b1b9161 MGR: Continue adding Exclusive Apps pane to Computing Prefs dialog; lib: add missing items in CONFIG, PROXY_INFO struct initializers
svn path=/trunk/boinc/; revision=23482
2011-04-29 12:04:07 +00:00
David Anderson 0ba3cc2d7b - client: shuffle code to move CONFIG and LOG_FLAGS
into lib/cc_config.h,
    in preparation for adding GUI RPCS


svn path=/trunk/boinc/; revision=23432
2011-04-25 03:18:26 +00:00
David Anderson 3b1b7e9204 - client:
- add <heartbeat_debug> log flag
    - show trickle-up and int file upload msgs if <app_msg_receive> set
    - if scheduler RPC reason is trickle-up, say so
- manager:
    - restore "non CPU intensive" to task description
    - project properties: show if RPC in progress or trickle-up pending.
        (show these low-probability things only if present)
- manager: fix Unix build

(from Ian Hay)


svn path=/trunk/boinc/; revision=23365
2011-04-14 01:04:10 +00:00
David Anderson f359a705f9 - client: accept <options/> and <log_flags/> in cc_config.xml
- client: reset log flags (as well as options) when rereading cc_config.xml

svn path=/trunk/boinc/; revision=22944
2011-01-25 19:05:44 +00:00
David Anderson a20e7d5837 - client simulator: updates. Fix web interface.
svn path=/trunk/boinc/; revision=22476
2010-10-07 21:41:31 +00:00
David Anderson d7d2ebef85 - client: add <max_tasks_reported> config item:
limit the # of completed tasks reported per RPC

svn path=/trunk/boinc/; revision=22467
2010-10-07 16:02:44 +00:00
David Anderson 1c4422985f - client: add <no_info_fetch> config option and --no_info_fetch
cmdline arg.
    Suppresses the fetch of project list and of current client version #.
    Use when running on grid nodes.
- debugging on client simulator.  Not done yet.

svn path=/trunk/boinc/; revision=22414
2010-09-27 20:34:47 +00:00
David Anderson eb35fc63e1 - client: code cleanup (move some config vars from CLIENT_STATE to CONFIG)
svn path=/trunk/boinc/; revision=21682
2010-06-02 18:21:30 +00:00
David Anderson cec8b2950a - client: add --fetch_minimal_work option (cmdline and config file)
If set, then:
        if there are any active jobs at startup, don't fetch more work
        otherwise make exactly 1 scheduler RPC requesting work,
        and request only enough jobs to fill all devices.
- client: --exit_when_idle: make it available in config file
    and change semantics to:
    If set: exit if
        1) there are no tasks, and
        2) either there was an active task on startup,
            or we made a scheduler RPC requesting work
    Note: if there are not active tasks on startup,
        and the client makes a work request which doesn't return work,
        it will exit.


svn path=/trunk/boinc/; revision=21680
2010-06-02 17:50:47 +00:00
David Anderson 7db608660f - client: standardize debug messages.
Messages enabled by <foo_debug> are prefixed by "[foo]"


svn path=/trunk/boinc/; revision=21335
2010-04-29 20:32:51 +00:00
David Anderson 7a4edbafab - client: "allow_remote_gui_rpc" is available via cc_config.xml
as well as command-line.
- client: show allow_remote_gui_rpc option,
    and contents of remote_host.cfg, in message log on startup
- client: code cleanup: move some options from
    CLIENT_STATE to OPTIONS

svn path=/trunk/boinc/; revision=21142
2010-04-07 21:11:15 +00:00
David Anderson f10384af43 - client: add <stderr_head> config option;
sends the first rather than last 64KB of stderr to server.
    This doesn't belong here; this choice should come from the server.
    I may take this out later.
- user web: when add a private message, always add a notification

svn path=/trunk/boinc/; revision=20141
2010-01-12 18:39:59 +00:00
David Anderson b0463cffae - client: more notice stuff. Add <notice_debug> log flag
svn path=/trunk/boinc/; revision=20019
2009-12-22 23:00:55 +00:00
David Anderson 91a7b38b2b - client: add <cpu_sched_status> log flag.
This tells you what's running, not why
- client: add <std_debug> log flag; changes in STD

The above are to let you log just stuff relevant to debt.
Right now I'm not sure why we need STD at all.

svn path=/trunk/boinc/; revision=19726
2009-11-28 00:07:39 +00:00
David Anderson e057c552d8 - client: add <exclusive_gpu_app> option:
suspend GPU usage when particular apps are running

svn path=/trunk/boinc/; revision=19573
2009-11-13 17:49:18 +00:00
David Anderson 4bf2ef5198 - client: add new config options:
<ignore_cuda_dev>n</ignore_cuda_dev>
    <ignore_ati_dev>n</ignore_ati_dev>
    to ignore (not use) specific NVIDIA or ATI GPUs.
    You can ignore more than one.

svn path=/trunk/boinc/; revision=19566
2009-11-12 23:44:49 +00:00
David Anderson 39815033a3 - client: in GPU enumeration, separate warning msgs from GPU descriptions.
Show warning msgs only if log_flags.coproc_debug

svn path=/trunk/boinc/; revision=19153
2009-09-24 17:23:33 +00:00
David Anderson 984bb92280 - client: cap project-supplied backoffs at 28 days
- client: anal-retentive alphabetization

svn path=/trunk/boinc/; revision=19060
2009-09-16 20:05:36 +00:00
David Anderson 720ec66f28 - scheduler: fix CUDA RAM warning msg
svn path=/trunk/boinc/; revision=18922
2009-08-26 16:10:46 +00:00
David Anderson 0a523d5f3f svn path=/trunk/boinc/; revision=18843 2009-08-14 17:10:52 +00:00
David Anderson e606170b14 - client: try to fix situations where the scheduler
runs GPU jobs in a seemingly random order,
        or preempts GPU jobs needlessly.
        The change has two parts:
        1) sort the "results" vector by received_time,
            so that the RR simulation processes GPU jobs FIFO.
        2) in the CPU scheduler (earliest_deadline_result())
            instead of choosing the earliest-deadline GPU job that
            misses its deadline,
            pick the earliest_deadline GPU from a project that
            has a deadline miss for that GPU type
            (this is what's done in the CPU case)
    - client: fix bug where if you have an exclusive app,
        then remove it from cc_config.xml and do "update config",
        it doesn't go away.
        Need to clear the list before parsing.

svn path=/trunk/boinc/; revision=18842
2009-08-14 16:54:45 +00:00
David Anderson 575565dc22 - client: fixed nasty bug that caused GPU jobs to crash on startup
when they're preempting another GPU job.
        The problem was as follows:
        - job A is chosen to preempt job B
        - we tell job B to quit, and initialize job A but don't start it;
            however, we set if scheduler state to SCHEDULED
            (rather than UNINITIALIZED)
        - job B exits, and we start job A.
            Since its state is not UNITIALIZED, we don't set up its slot dir.
        - job A runs in an empty slot dir, doesn't find its files, and bombs out.
    - client: add <slot_debug> option (prints messages about
        allocation of slots, creating/removing files in slot dirs).

svn path=/trunk/boinc/; revision=18217
2009-05-28 19:26:27 +00:00
David Anderson e3a730c334 - client: add <use_all_gpus> config option. If set, use GPUs
even if they're not equivalent to the most capable one.
- Validator: fix one_pass_N_WU option.

svn path=/trunk/boinc/; revision=17896
2009-04-27 23:51:46 +00:00
David Anderson 5834cb098e - client: we were setting config defaults after parsing cmdline.
This meant that the cmdline args that set config params weren't working:
        --allow_multiple_clients
        --report_results_immediately
        --no_priority_change
        --start_delay

svn path=/trunk/boinc/; revision=17741
2009-04-07 20:02:49 +00:00
David Anderson d152b52817 - client: add --no_priority_change cmdline arg
(and <no_priority_change> flag in cc_config.xml).
    If set, run apps at same priority as client.

svn path=/trunk/boinc/; revision=17639
2009-03-20 18:56:54 +00:00
David Anderson 30baaf0783 - client: reduce frequency of writing state file:
1) multiply checkpoint period by # of cores (or GPUs)
    2) don't write statefile after schedule_cpus()
        (we write it after enforce_schedule() if anything
        started or stopped, and that's all that matters)
- client: add new log flag <statefile_debug>;
    tells you when and why statefile is written

svn path=/trunk/boinc/; revision=17638
2009-03-20 17:58:51 +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 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 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 962c491f42 - client: add <no_gpus> config option
svn path=/trunk/boinc/; revision=16694
2008-12-16 00:09:51 +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 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 f17c0879de - changed some comments for Doxygen
svn path=/trunk/boinc/; revision=16130
2008-10-04 23:44:24 +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 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 f6b1ae85b9 - certificate stuff
svn path=/trunk/boinc/; revision=15957
2008-09-04 12:17:58 +00:00
David Anderson 4f66bb4c95 - added copyright and license info to .C, .cpp, .h files
- scheduler: fix bug in adaptive replication:
    if send an unreplicated job to untrusted host,
    set both wu.target_nresults and wu.min_quorum to app.target_nresults.

svn path=/trunk/boinc/; revision=15762
2008-08-06 18:36:30 +00:00
David Anderson 1c8c140f95 - client: add <allow_multiple_clients> cc_config.xml option
- client: remove stress_shmem code

svn path=/trunk/boinc/; revision=15185
2008-05-12 21:27:14 +00:00
Rom Walton 83e0feedfd - client: expand the <force_ntlm> functionality so that we can
force any authentication type. The new tag is called
        <force_auth> whihc can contain basic, digest, ntlm, and
        gss-negotiate.
        
    client/
        http_curl.C
        log_flags.C, .h

svn path=/trunk/boinc/; revision=14696
2008-02-07 16:05:56 +00:00
David Anderson 9c89b45af2 - client: add <force_ntlm> config flag.
Causes client to use NTLM auth and HTTP 1.0
- client: we weren't doing exponential backoff if scheduler
    requests failed at initialization; fix this

svn path=/trunk/boinc/; revision=14628
2008-01-28 16:52:52 +00:00
David Anderson 2be6f8e53a - Client: add <run_apps_manually> config flag.
This is for debugging apps (currently works only in Unix).
    What it does: when running an app,
    the client does everything except actually fork/exec the app,
    i.e. it sets up the slot dir, creates shared mem segment etc.
    It then continues as if the app were actually running,
    and you can then manually run your app under a debugger
    in the slot directory.
    Note: the client won't notice the termination of your app.
- API, Unix: in situations where the timer thread wants to exit
    (e.g. it notices a missing heartbeat).
    don't directly call boinc_exit(),
    since this touches data structures that the worker thread
    may be using concurrently.
    Instead, set a flag telling the worker thread to call boinc_exit()
    (which it will do from its signal handler)
    This is an attempt to fix problems reported by Bernd;
    I haven't tested it.
- scheduler: add config flag for uploading usage data
- web: show account key and weak account key on user page
- added some code for multithread support (not finished)

api/
    boinc_api.C


svn path=/trunk/boinc/; revision=14542
2008-01-13 00:12:14 +00:00
David Anderson 9b2998009f - client: add --start_delay cmdline option and <start_delay> config option.
Specifies an amount of time to delay starting apps
    (e.g. so that BOINC doesn't slow down boot process)

    Note: mechanisms that start BOINC at boot time
    need to figure out how to set this flag.

svn path=/trunk/boinc/; revision=14445
2007-12-27 21:40:20 +00:00
David Anderson b3768ecc6f - client: removed -return_results_immediately cmdline option
(wasn't implemented anyway)
- client: added <report_results_immediately> configuration flag;
    causes results to be reported as soon as done.
    Needed for some WCG machines that are reformatted often.
    Should NOT be used in general, since it increases server load.

svn path=/trunk/boinc/; revision=14280
2007-11-21 19:57:40 +00:00
David Anderson 7c20a8c5cf - client: add <max_stdout_file_size> and <max_stderr_file_size>
cc_config.xml options to change log file size limit
    from the default of 2 MB

svn path=/trunk/boinc/; revision=13955
2007-10-24 22:48:47 +00:00
David Anderson e8c2a2927a - client: cc_config.xml can contain one or more <alt_platform> elements
specifying additional alternate platforms.

svn path=/trunk/boinc/; revision=13918
2007-10-20 16:10:57 +00:00
Frank Thomas 3bfc78b511 Updated the postal address of the Free Software Foundation in all license headers. See http://lists.ssl.berkeley.edu/pipermail/boinc_dev/2007-October/008939.html for reference.
svn path=/trunk/boinc/; revision=13804
2007-10-09 11:35:47 +00:00
David Anderson 4e1f0b7019 - client: add a <data_dir> option in cc_config.xml;
tells the client to use this as the data directory
- scheduler: improve the message telling the client that
    more disk or memory is needed;
    tell them the minimum amount needed to
    send any of the jobs rejected,
    rather than the amount needed for the first job rejected
- manager: fix text in "connect now" dialog

svn path=/trunk/boinc/; revision=13387
2007-08-16 17:33:41 +00:00
David Anderson a81b825643 - client: add "dont_contact_ref_site" config flag;
suppresses connectivity-testing connections to google.com

svn path=/trunk/boinc/; revision=13125
2007-07-09 16:00:10 +00:00