Commit Graph

158 Commits

Author SHA1 Message Date
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 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 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 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 f17c0879de - changed some comments for Doxygen
svn path=/trunk/boinc/; revision=16130
2008-10-04 23:44:24 +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 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
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 fd6bb6e637 - client: on Windows (at least) if you kill a task (e.g. reset project)
ACTIVE_TASK::handle_exited_app() never gets called,
    so the coprocessors weren't getting freed.
    Fix this.

svn path=/trunk/boinc/; revision=15242
2008-05-16 22:52:09 +00:00
David Anderson 0e4eb7f6e7 - client: if we request that an app exit,
and it doesn't do so within 10 seconds, kill it.
        This deals with the situation where the app is ignoring messages
        (e.g. because it forgot to end a critical section).
    - client: if either the FP or int benchmark runs less than
        3 CPU seconds (out of 10 seconds of wall time) ignore the benchmark.
        This is an effort to deal with a problem where (for unknown reasons)
        the int benchmark runs for a tiny amount of CPU time,
        leading to an absurdly large result
    - Manager: don't prepend "[error]" to MSG_INTERNAL_ERROR messages;
        the client already does this.

    THESE ARE ALL BUG FIXES

svn path=/trunk/boinc/; revision=15128
2008-05-05 00:51:20 +00:00
David Anderson 13400c9516 Changes for multithread app support:
- update_versions: use __ (not :) as separator for plan class
- client: add plan_class to APP_VERSION;
    an app version is now identified by platform/version/plan_class
- client CPU scheduler: don't assume apps use 1 CPU
- client: add avg_ncpus, max_cpus, flops, cmdline to RESULT
- scheduler: implement app planning scheme

Other changes:

- client: if symlink() fails, make a XML soft link instead
    (for Unix running off a FAT32 FS)
- client: don't accept nonpositive resource share from AMS
- daemons and DB: check for error returns from enumerations,
    and exit if so.  Thus, if the MySQL server goes down,
    all the daemons will soon exit.
    The cron script will restart them every 5 min,
    so when the DB server comes back up so will the project.
- web: show empty max CPU % as ---
- API: get rid of all_threads_cpu_time option (always the case now)


svn path=/trunk/boinc/; revision=14966
2008-03-27 18:25:29 +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 74c2782624 - API: code cleanup
removed references to "graphics thread"
    removed HANDLE timer_quit_event
    removed enable_heartbeat/disable_heartbeat messages
        (not sure what the ideas was, but no longer exists)
    removed heartbeat_active flag (use options.check_heartbeat instead)
    read heartbeat-channel messages even if heartbeat disabled
        (since we use that channel for WSS messages too)
- client: remove ACTIVE_TASK::thread_handle (not used)

svn path=/trunk/boinc/; revision=14323
2007-11-29 19:48:04 +00:00
David Anderson 4525b2677b - client: clean up logic of handling DLL_INIT_FAILED exits on Win.
Shouldn't cause any functional change

svn path=/trunk/boinc/; revision=14310
2007-11-27 21:54:17 +00:00
Rom Walton ae321f631b - CC: Treat the return code 0xC0000142 as though it is a temporary
error. 0xC0000142 means STATUS_DLL_INIT_FAILED which can happen
        when an application attempts to create a new process while the OS
        is shutting down, and when the desktop heap is fully utilized.
        
        This will keep an app from erroring out during Vista's shutdown
        sequence. Only a reboot can fix the desktop heap.
        
    client/
        app.h
        app_control.C

svn path=/trunk/boinc/; revision=14080
2007-11-05 15:03:16 +00:00
Charlie Fenton c9718fb0b9 Mac client: Add 64-bit support for OS 10.5 (new platform x86_64-apple-darwin)
svn path=/trunk/boinc/; revision=13939
2007-10-24 00:44:42 +00:00
Charlie Fenton eb9cfe6b20 V6 GFX: Fix bugs in graphics compatibility with V5 applications
svn path=/trunk/boinc/; revision=13830
2007-10-11 11:02:48 +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 f1f5930579 - client: removed everything related to screensaver
(deciding which app to use, implementing blanking interval, etc.)
    This logic is all now in the screensaver itself.
- GUI RPC: removed get/set screensaver mode RPCs
- API: added a "backwards_compatible_graphics" flag to BOINC_OPTIONS.
    V6 apps should set this.
    If set, the runtime library checks for graphics messages
    from the client, and launches/kills the graphics app (if any).
    The app will then work graphically with pre-V6 clients.
- removed some old files

svn path=/trunk/boinc/; revision=13651
2007-09-25 16:04:45 +00:00
David Anderson aefd2d4c88 - client: add mechanism to abort results if they get > 100
"premature exits" (exit(0) without finish file) between checkpoints


svn path=/trunk/boinc/; revision=13207
2007-07-20 23:42:20 +00:00
Charlie Fenton 390633ff7e Back out my shared memory changes of 27 June because it might prevent compound applications from attaching to the shared memory as needed
svn path=/trunk/boinc/; revision=13046
2007-06-28 11:09:07 +00:00
David Anderson 823df51238 - client: allow up to a day (rather than work_buf_min()) to elapsed
between completing a result and reporting it.
- back end: added <httpd_user> config option:
    Web server user name (used by file deleter)
- back end: don't report unparsed XML in config.xml as an error

client/
    app.h
    work_fetch.C
lib/
    shmem.C
sched/
    file_deleter.C
    file_upload_handler.C
    sched_config.C,h
    show_shmem.C

svn path=/trunk/boinc/; revision=13039
2007-06-27 20:09:18 +00:00
Charlie Fenton fdf8973685 CC: Mark shmem segment for eventual destruction on first msg from task (*nix only)
svn path=/trunk/boinc/; revision=13034
2007-06-27 10:29:31 +00:00
Charlie Fenton 7bb1b1a0d4 CC: Add logic to scheduler, etc. for systems which limit the number of shared memory segments per process and / or system-wide.
svn path=/trunk/boinc/; revision=13015
2007-06-25 11:46:15 +00:00
David Anderson 9850a17167 - GUI RPC: add graphics_exec_path and slot_path fields to RESULT.
These let the Manager run the graphics app.
    Graphics apps have physical name *v6graphics*
- Separated ACTIVE_TASK::write() and ACTIVE_TASK::write_gui().
    These need to write largely disjoint set of items.
- code cleanup: remove a zillion "else"s in parsing code
- code cleanup: change a zillion match_tag(buf, "<foo/>"
    to parse_bool(buf, "foo")

client/
    app.C,h
    client_state.C
    client_types.C,h
lib/
    gui_rpc_client.h
    gui_rpc_client_ops.C
sched/
    server_types.C

svn path=/trunk/boinc/; revision=12938
2007-06-14 23:08:43 +00:00
David Anderson f7e650191a - client: change Win program launch to suppress hourglass cursor
- client simulator: add --cpu_sched_rr_only and --dual_dcf options

client/
    app.h
    app_start.C
    client_types.C,h
    cpu_sched.C
    cs_scheduler.C
    sim.C,h
    work_fetch.C

svn path=/trunk/boinc/; revision=12671
2007-05-15 20:29:26 +00:00
Rom Walton 67078e9e67 - Fix a build break in the manager.
client/
        app.h
    lib/
        common_defs.h

svn path=/trunk/boinc/; revision=12646
2007-05-11 03:49:25 +00:00
David Anderson 4931b54706 *** empty log message ***
svn path=/trunk/boinc/; revision=12335
2007-04-09 16:19:42 +00:00
David Anderson b8a107c995 *** empty log message ***
svn path=/trunk/boinc/; revision=12265
2007-03-23 18:48:06 +00:00
David Anderson 71afcf8c06 *** empty log message ***
svn path=/trunk/boinc/; revision=12235
2007-03-15 23:01:51 +00:00
David Anderson 6ff0977570 *** empty log message ***
svn path=/trunk/boinc/; revision=12139
2007-02-22 16:33:37 +00:00
Rom Walton b8cf48e398 *** empty log message ***
svn path=/trunk/boinc/; revision=12123
2007-02-20 18:25:04 +00:00
David Anderson ac3e809427 *** empty log message ***
svn path=/trunk/boinc/; revision=12026
2007-02-02 17:12:07 +00:00
David Anderson 71fc6345b7 *** empty log message ***
svn path=/trunk/boinc/; revision=11957
2007-01-24 21:20:57 +00:00
David Anderson c12709c7e2 *** empty log message ***
svn path=/trunk/boinc/; revision=11938
2007-01-23 17:24:43 +00:00
David Anderson 829c5b4e82 *** empty log message ***
svn path=/trunk/boinc/; revision=11886
2007-01-16 22:57:08 +00:00
David Anderson cc9ab449e0 *** empty log message ***
svn path=/trunk/boinc/; revision=11872
2007-01-15 22:53:41 +00:00
David Anderson d3b1c45d64 *** empty log message ***
svn path=/trunk/boinc/; revision=11634
2006-12-07 17:30:48 +00:00
David Anderson adcd68afce *** empty log message ***
svn path=/trunk/boinc/; revision=11628
2006-12-06 20:59:29 +00:00
David Anderson 450f3c4f30 *** empty log message ***
svn path=/trunk/boinc/; revision=11241
2006-10-03 22:50:13 +00:00
David Anderson 119ef5da01 *** empty log message ***
svn path=/trunk/boinc/; revision=11231
2006-10-02 23:42:38 +00:00
David Anderson 14a7fb85f6 *** empty log message ***
svn path=/trunk/boinc/; revision=11124
2006-09-08 19:27:42 +00:00
David Anderson 59d5508392 *** empty log message ***
svn path=/trunk/boinc/; revision=11107
2006-09-05 19:00:59 +00:00
David Anderson 7ce1144b73 *** empty log message ***
svn path=/trunk/boinc/; revision=11076
2006-09-01 21:06:30 +00:00
David Anderson 20dea204ca *** empty log message ***
svn path=/trunk/boinc/; revision=10972
2006-08-22 20:58:57 +00:00
David Anderson c94a867c8b *** empty log message ***
svn path=/trunk/boinc/; revision=10820
2006-08-02 21:33:19 +00:00
David Anderson 04d1eeaf9b *** empty log message ***
svn path=/trunk/boinc/; revision=10551
2006-07-01 04:00:19 +00:00
David Anderson 15fa53c622 *** empty log message ***
svn path=/trunk/boinc/; revision=10514
2006-06-26 17:09:23 +00:00
David Anderson 1fa2e3de0a *** empty log message ***
svn path=/trunk/boinc/; revision=10393
2006-06-19 04:29:26 +00:00
David Anderson f4ffa949de CPU scheduler
svn path=/trunk/boinc/; revision=10365
2006-06-15 23:15:27 +00:00