Commit Graph

98 Commits

Author SHA1 Message Date
David Anderson 673d44ad0d - client: fix bug with --abort_jobs_on_exit that caused the client
to request new work on exit
- client: change "unparsed tag" to "unrecognized tag" in msgs
- client: get rid of unused var work_fetch_no_new_work

svn path=/trunk/boinc/; revision=22000
2010-07-19 16:44:43 +00:00
David Anderson 81973a9fff - scheduler: fix structural problems with sending user messages.
Old: various redundant and/or misleading messages were sent.
    New:
        - if host w/ no GPU contacts a GPU-only project,
            send high-pri message saying they need a GPU
        - if host w/ GPU has driver too old for all versions,
            send high-pri message saying to update driver
        - if host w/ GPU has driver too old for some versions,
            send low-pri message saying to update driver
        - if host has GPU but too little RAM for any app,
            send low-pri message saying so
- scheduler: revamp GPU plan class functions

svn path=/trunk/boinc/; revision=21760
2010-06-16 22:07:19 +00:00
David Anderson 40eebe00af - client/scheduler: in COPROCS, instead of having a vector of
pointers to dynamically allocated COPROC-derived objects,
    just have the objects themselves.
    Dynamic allocation should be avoided at all costs.

svn path=/trunk/boinc/; revision=21564
2010-05-18 19:22:34 +00:00
Rom Walton 9cb3e6ffc7 - client & lib: bring header inclusion up-to-date for the CC to begin
hunting down a memory leak.
        
    client/
        <Various Files>
    lib/
        <Various Files>

svn path=/trunk/boinc/; revision=21457
2010-05-11 19:10:29 +00:00
David Anderson e27659858d - result of code shuffle: the HOST_INFO structure returned
by the get_host_info() GUI RPC now contains GPU info

svn path=/trunk/boinc/; revision=19798
2009-12-07 06:13:17 +00:00
David Anderson b70229c093 - code shuffle: move client-specific GPU code to a separate file
svn path=/trunk/boinc/; revision=19794
2009-12-07 00:42:03 +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 41f8561fb0 - Mac compile fix
svn path=/trunk/boinc/; revision=19557
2009-11-12 21:04:56 +00:00
David Anderson 8f89dc58d8 - client: fix yesterday's checkin to remove restrictions
on GUI RPC request elements.
    You can now use either <foo></foo> or <foo/>
    for empty request messages.
- GUI RPC client library: fix double-free bug.
    it's not clear how this ever worked.

svn path=/trunk/boinc/; revision=19543
2009-11-11 22:01:27 +00:00
Rom Walton 9f3283cf7c - Backout previous change. The problem doesn't yet manifest
itself on Windows and the change has too many implications.
        
    lib/
        boinc_in.h
        coproc.cpp
    win_build/
        *.vcproj

svn path=/trunk/boinc/; revision=19542
2009-11-11 20:51:03 +00:00
Rom Walton c73ea50c1b - On Windows treat all SEH exceptions as C++ style exceptions.
NOTE: I'll need to do a little more research and adjust the
          diagnostics stuff later.  I believe that the diagnostics
          framework will now always report an unhandled C++ exception
          for things like an Access Violation.
    - client: On Windows, recover from an Access Violation if/when 
        the GPU functions access violate.
        
    lib/
        boinc_in.h
        coproc.cpp
    win_build/
        *.vcproj

svn path=/trunk/boinc/; revision=19541
2009-11-11 20:33:12 +00:00
David Anderson a0e3c5ae8d - client (Mac/Linux): if the NVIDIA or ATI detection functions
cause a SIGSEGV, recover from it.

svn path=/trunk/boinc/; revision=19533
2009-11-10 23:26:10 +00:00
Rom Walton 03e1dfa0a2 - client: Use is_remote_desktop() instead of the various GPU functions
to determine when the client software has been switched into Remote
        Desktop mode and shutsdown GPU apps.  This will prevent App crashes.
        
    lib/
        coproc.cpp

svn path=/trunk/boinc/; revision=19339
2009-10-19 14:48:45 +00:00
David Anderson fe2a18f282 - client/scheduler: standardize the FLOPS estimate between NVIDIA and ATI.
Make them both peak FLOPS,
    according to the formula supplied by the manufacturer.

    The impact on the client is minor:
    - the startup message describing the GPU
    - the weight of the resource type in computing long-term debt

    On the server, I changed the example app_plan() function
    to assume that app FLOPS is 20% of peak FLOPS
    (that's about what it is for SETI@home)

svn path=/trunk/boinc/; revision=19310
2009-10-16 00:13:01 +00:00
Rom Walton 40c159c6b0 Quick Updates
svn path=/trunk/boinc/; revision=19308
2009-10-15 03:11:12 +00:00
David Anderson 700ecbab86 svn path=/trunk/boinc/; revision=19307 2009-10-14 21:14:34 +00:00
David Anderson 8edc613d91 svn path=/trunk/boinc/; revision=19306 2009-10-14 21:01:06 +00:00
David Anderson 4595b95c43 svn path=/trunk/boinc/; revision=19305 2009-10-14 20:27:52 +00:00
David Anderson 4537dedcd3 - update cal.h to current ATI code
svn path=/trunk/boinc/; revision=19304
2009-10-14 20:09:41 +00:00
David Anderson 9cd9a028b3 svn path=/trunk/boinc/; revision=19303 2009-10-14 19:29:37 +00:00
David Anderson d6efa7dabb - client: address the situation where GPUs become unusable
for certain periods (e.g. when Remote Desktop is used on Win).
    - add is_usable() member function to COPROC.
        Currently this just calls the respective (CUDA or CAL)
        initialization function.
        We need to check whether this works and/or causes problems.
    - in enforce_schedule(), check whether usability has changed
        for each GPU type.
        If we've gone from usable to unusable,
        flag all jobs for that GPU as coproc_missing
        (so they won't get run, and will quit if they're running).
        If we've gone from unusable to usable, clear the flag.
    This should deal with all cases except where
    the client is started up with GPUs unusable.
- scheduler: more query optimizations for locality scheduling
    (from Oliver Bock)

svn path=/trunk/boinc/; revision=19301
2009-10-14 18:07:49 +00:00
David Anderson 54b078d0af - client: add --unsigned_apps_ok cmdline option
and <unsigned_apps_ok> config option.
    This tells the client to allow unsigned apps.
    For testing.
    No file xfers or other network traffic will be allowed if set.
- client: add <exit_after_finish> option (same as cmdline flag)
- client: add <skip_cpu_benchmarks> option (same as cmdline flag)
- client: print message if abort past-deadline unstarted job
- client: improve message when have NVIDIA drivers but no GPU
    

svn path=/trunk/boinc/; revision=19276
2009-10-07 18:42:51 +00:00
David Anderson fb14ff8a7a - client: fix bug where if you change project "no CPU/NVIDIA/ATI"
prefs and update, the change wouldn't take effect until client restart.
	- client: fix bug in enforcement of "no CPU/NVIDIA/ATI" prefs

svn path=/trunk/boinc/; revision=19236
2009-10-03 00:19:11 +00:00
David Anderson fca2cb8016 - client: restore calDeviceGetInfo(), add its info to COPROC_ATI struct
(some plan class might need to know this).
    Code cleanup.

svn path=/trunk/boinc/; revision=19234
2009-10-02 22:58:03 +00:00
Rom Walton f810629e92 - lib: Add additional ATI descriptions.
- lib: Fix some inaccurate ATI capabilities in certain cards.
        (From: Andreas a.k.a Gipsel)
        
    lib/
        coproc.cpp


svn path=/trunk/boinc/; revision=19228
2009-10-01 20:04:46 +00:00
Rom Walton 2b6f430094 - client: fix a handle leak I just introduced.
(From: Andreas a.k.a Gipsel)
        
    lib/
        coproc.cpp

svn path=/trunk/boinc/; revision=19226
2009-10-01 19:15:42 +00:00
Rom Walton 2c9f5ed224 - client: only support one of the ati13* plan classes at a time.
A couple users had not updated their amdcal* runtime libraries
        after upgrading catalyst drivers.  This was leading to crashes
        of the project applications when work was supplied looking
        for the old DLL names.
        
    lib/
        coproc.cpp

svn path=/trunk/boinc/; revision=19225
2009-10-01 15:22:01 +00:00
Rom Walton 5a54302bf6 - client: fix bug in coproc summary string.
lib/
        coproc.cpp

svn path=/trunk/boinc/; revision=19209
2009-09-29 15:28:56 +00:00
David Anderson 71c7e7a74b - client/scheduler/web: add per-project preferences for whether
to accept CPU, NVIDIA and ATI jobs.
    These prefs are shown only where relevant:
    e.g., only for processor types for which the project has app versions,
    and if it has versions for only one type, no pref is shown.

    These prefs affect both client and scheduler.
    The client won't ask for work for a device blocked by prefs,
    and the scheduler won't send it.

    This replaces earlier optional project-specific prefs for
    "no CPU jobs" and "no GPU jobs".
    (However, these prefs continue to be honored on the server side).

- client: if NVIDIA driver is unknown, say that rather than 0


svn path=/trunk/boinc/; revision=19194
2009-09-28 04:24:18 +00:00
David Anderson 8874e4bcf3 svn path=/trunk/boinc/; revision=19168 2009-09-25 17:41:16 +00:00
David Anderson 64559c7da8 - client: improve ATI description strings (from Andreas)
svn path=/trunk/boinc/; revision=19166
2009-09-25 17:13:48 +00:00
Rom Walton e79079dfbf Commit missing piece of code, I had written them before the first commit.
svn path=/trunk/boinc/; revision=19165
2009-09-25 16:57:24 +00:00
David Anderson 348f6e6db8 - scheduler: fix app_plan() bug, improve ATI-related msgs
svn path=/trunk/boinc/; revision=19164
2009-09-25 16:35:43 +00:00
Rom Walton 8c283226c3 - lib: fix build break.
lib/
        coproc.cpp

svn path=/trunk/boinc/; revision=19163
2009-09-25 16:10:18 +00:00
Rom Walton ad455ab09d - client: Add support for checking for both amd* prefixed CAL libraries
and ati* prefixed CAL libraries.
    - scheduler: redefine ati class plans again.
        ati: CAL 1.0+, amd* prefixed libraries
        ati13amd: CAL 1.3+, amd* prefixed libraries
        ati13ati: CAL 1.3+, ati* prefixed libraries
        ati14: CAL 1.4+, ati* prefixed libraries

    sched/
        sched_customize.cpp
    lib/
        coproc.cpp, .h

svn path=/trunk/boinc/; revision=19162
2009-09-25 15:40:16 +00:00
David Anderson cfcfeffd21 - client: for ATI enumeration, use only aticalrt.dll
(amdcalrt.dll is old version w/ funky DLL names)
- client: make GPU enumeration warnings more consistent
    (e.g., "NVIDIA" instead of "CUDA").
- scheduler: get rid of ati13 plan class.
    Require 1.4+ driver for plan class ati.

svn path=/trunk/boinc/; revision=19158
2009-09-24 18:33:40 +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 41e3b06b23 - client and scheduler RPC: add optional <cpu_backoff>, <cuda_backoff>,
and <ati_backoff> elements to scheduler reply.
    These specify backoffs for the resource types,
    overriding the existing backoff mechanism.
    Projects can supply these if they don't have apps of a particular type
    and don't want to get periodic requests for them.

svn path=/trunk/boinc/; revision=19059
2009-09-16 17:34:19 +00:00
Charlie Fenton d6fa3f4f22 client: don't display processor cache if we don't know it; skip ATI stuff on Macs.
svn path=/trunk/boinc/; revision=19040
2009-09-10 22:06:20 +00:00
David Anderson f5a6f862bf - client: fix bug in RR simulation:
start only enough jobs to fill CPUs per project,
    not all the CPU jobs at once.
    I'm not sure how much difference this makes,
    but this is how it's supposed to work.
- client: if app_info.xml doesn't specify flops,
    use an estimate that takes GPUs into account.
- client: if it's been more than 2 weeks since time stats update,
    don't decay on_frac at all.

svn path=/trunk/boinc/; revision=19035
2009-09-09 22:18:02 +00:00
David Anderson 9d38ecb835 svn path=/trunk/boinc/; revision=19029 2009-09-08 19:30:06 +00:00
David Anderson b129e71f20 - client: add code for faking ATI GPUs
svn path=/trunk/boinc/; revision=19024
2009-09-08 18:42:24 +00:00
David Anderson 0af302a308 - compile fixes
svn path=/trunk/boinc/; revision=18943
2009-08-28 23:02:15 +00:00
David Anderson 2039e67638 - client: NVIDIA offers an API which tells you whether a GPU
is running a graphics application.
    Change the semantics of the "don't use GPU while computer in use" pref
    to "don't use a GPU that's running a graphics app while
    computer is in use".
    This will increase GPU utilization on multi-GPU systems.

svn path=/trunk/boinc/; revision=18942
2009-08-28 22:55:04 +00:00
David Anderson 9a8f91fb1e - client: in parsing <coproc> elements in <app_version>,
use a new type COPROC_REQ for which the count field is a double.
    Otherwise fractional GPU jobs don't work.

svn path=/trunk/boinc/; revision=18906
2009-08-24 23:16:17 +00:00
David Anderson b3d0249ade - client: use the right library name for ATI on Linux
- client: check return values from ATI device detection functions

svn path=/trunk/boinc/; revision=18905
2009-08-24 21:41:48 +00:00
David Anderson d14527f79d - update_versions: if app version files already exist in download dir,
make sure they're the same (i.e., enforce file immutability).
    TODO: do this for input files too
- client: check return values from CUDA device detection functions

svn path=/trunk/boinc/; revision=18903
2009-08-24 19:08:05 +00:00
David Anderson 073e6ded2c - client and scheduler: lay the groundwork for "fractional coproc jobs",
e.g. the Milkyway@home ATI app, of which we can typically run
    2 or 3 instances at once on a GPU.
    Changes include:
    - In APP_VERSION, don't use a COPROCS to represent the GPU
        requirements; just use doubles ncudas and natis.
    - sufficient_coprocs() etc. are no longer members of COPROCS
    - in HOST_USAGE, ncudas and natis are doubles
    - in scheduler request, req_instances is now a double

    This checkin doesn't include the job scheduling logic,
    i.e. assigning jobs to GPUs.  That will follow.

svn path=/trunk/boinc/; revision=18868
2009-08-19 18:41:47 +00:00
David Anderson 12d4b978be - scheduler: if client request uses a weak authenticator,
don't modify user preferences or CPID.
- client: fix bug that shows ATI version incorrectly
- database: host.posts has been repurposed as a salt (or seqno)
    for a new type of weak authenticator that won't depend on password
- web code:
    modify forum_preferences.posts instead of host.posts.
    (actually, the former isn't used either, we just do a select count(*);
    should fix this at some point).

svn path=/trunk/boinc/; revision=18865
2009-08-18 20:44:12 +00:00
David Anderson 152ee20b17 - client: fix calculation of ATI flops
svn path=/trunk/boinc/; revision=18852
2009-08-17 17:27:06 +00:00