Commit Graph

1716 Commits

Author SHA1 Message Date
David Anderson 9020d0b715 - server: if MySQL version is 5.0.19 <= v < 5.1,
set the reconnect option before real_connect() instead of after.
    From Oliver Bock.

svn path=/trunk/boinc/; revision=20763
2010-03-01 19:12:19 +00:00
David Anderson f82216e203 - scheduler: add plan class "cuda_fermi":
requires CUDA 2.3 and compute capability 2.0+

svn path=/trunk/boinc/; revision=20748
2010-02-26 23:45:12 +00:00
David Anderson a9a2034a5c - assimilator: fix --one_pass bug (from Bernd)
svn path=/trunk/boinc/; revision=20627
2010-02-18 17:58:05 +00:00
David Anderson c00346b15c - db_dump: don't error out if try to rename output dir
and it doesn't exist.
    Seems to me that this would cause db_dump to always fail
    for new projects.

svn path=/trunk/boinc/; revision=20608
2010-02-17 18:09:10 +00:00
David Anderson 84701e3624 - scheduler: add example code for SETI@home's situation
where app has both GPU and CPU versions,
    but for certain jobs (VLAR WUs in this case)
    the GPU version performs poorly and shouldn't be used.

    The fix is a kludge - it will result in these jobs
    not being sent to the host at all,
    rather than being sent with the CPU app.
    The current architecture makes it difficult to do otherwise.
    One possible fix would be to create a separate app
    for VLAR jobs, with only CPU app versions.


svn path=/trunk/boinc/; revision=20419
2010-02-04 17:34:55 +00:00
David Anderson 78695969e4 - scheduler: don't send CUDA jobs to Macs with client < 6.10.28;
they'll crash.

svn path=/trunk/boinc/; revision=20360
2010-02-02 17:18:39 +00:00
David Anderson 67e438bc6b - transitioner: fix bug where WUs with error_mask <> 0 keep
transitioning every 10 days, hence never become eligible for purging.
    The problem: the transitioner has a "safety net" where,
    if the WU doesn't have a canonical result,
    it arranges for another transition in 10 days.
    Skip this if error_mask<>0.

svn path=/trunk/boinc/; revision=20265
2010-01-25 23:35:16 +00:00
David Anderson 6b3ea3d339 - user web: don't show "database error" if result refers
to deleted app version

svn path=/trunk/boinc/; revision=20251
2010-01-23 00:36:12 +00:00
David Anderson 974ea0469c - DB purge: allow fractional min_age_days (from Travis Desell)
svn path=/trunk/boinc/; revision=20250
2010-01-22 23:55:50 +00:00
David Anderson 956c955639 - scheduler: use COPROC_REQ instead of COPROC when parsing
anonymous-platform app versions.
    Otherwise fractional GPU requirements get truncated to zero.
    Thanks to Crunch3r for identifying the problem.
    

svn path=/trunk/boinc/; revision=20189
2010-01-18 19:22:03 +00:00
David Anderson 0c1a1421f8 - scheduler/feeder: if any client version number field
(min_core_version etc.) is < 10000,
    multiply it by 100 and print a warning.

svn path=/trunk/boinc/; revision=20187
2010-01-18 04:52:58 +00:00
David Anderson bbe7c2ea08 - scheduler: close DB connection on SIGTERM (from Bernd M.)
svn path=/trunk/boinc/; revision=20150
2010-01-13 18:40:43 +00:00
David Anderson 737952dbb5 - server: client version numbers are represented as
10000*major + 100*minor + release,
    rather than 100*major + minor.
    Sometimes you need release-level resolution.
    This affects:
    - app_version.min_core_version
    - config: min_core_client_version_announced
    - config: min_core_client_version
    Projects using these must multiply them by 100.

svn path=/trunk/boinc/; revision=20149
2010-01-13 17:28:59 +00:00
David Anderson ee343cea02 - client: small tweak to work fetch:
if project has crazy DCF, don't automatically request 1 sec;
    only request work if there's a shortfall.
- intermediate checkin for notices stuff

svn path=/trunk/boinc/; revision=20145
2010-01-12 21:53:40 +00:00
Bernd Machenschalk b207fe88fc - Limit the number of files to be deleted in one 'antique
deletion' pass to 50000 (can be changed with -delete_antiques_limit).
  Previously large number of antiques led to not deleting any at all.
- Allow to change the interval between passes with -delete_antiques_interval.

svn path=/trunk/boinc/; revision=20138
2010-01-12 12:31:23 +00:00
Bernd Machenschalk fbf3ca1450 a couple of locality scheduling fixes:
- remove obsolete and buggy code from transitioner (create_result() in backend_lib)
    - account for 'mixed' scheduling in explain_to_user() in sched_send.cpp
    - finish transition to configurable patterns for distinguishing files reported by the client
      in the Einstein@home-specific part of send_work_locality in sched_locality
      (removed previous hardcoded strcmps)

svn path=/trunk/boinc/; revision=20074
2010-01-05 11:03:10 +00:00
David Anderson 876522c6aa - client: add logic to work fetch so that each project
will have enough jobs to use its share of resource instances.
    This avoids situations where e.g. on a 2-CPU system
    a project has 75% resource share and 1 CPU job,
    and its STD increases without bound.
    
    Did a general cleanup of the logic for computing
    work request sizes (seconds and instances).

svn path=/trunk/boinc/; revision=20036
2009-12-24 20:40:27 +00:00
David Anderson 230dbbfe63 - scheduler: fix SQL injection vulnerability
svn path=/trunk/boinc/; revision=19997
2009-12-21 00:59:43 +00:00
David Anderson 9dceaa9c75 - scheduler: fix SQL injection vulnerability
svn path=/branches/server_stable/; revision=19996
2009-12-21 00:58:58 +00:00
David Anderson 746b75d0d0 - scheduler: use a more accurate way of estimating total FLOPS
and avg_ncpus for GPU apps.
    App versions are now characterized by two parameters
    (we assume that the app uses either the CPU or the GPU
    at a given time, but not both):
    - the fraction of FLOPs performed on the CPU
    - when the app is using the GPU, the fraction of peak FLOPS
        that it gets.
    We then run the numbers to get the total FLOPS and avg_ncpus.


svn path=/trunk/boinc/; revision=19977
2009-12-18 23:28:10 +00:00
David Anderson a151ad6cb3 - client/scheduler: deal with situation where GPU has enough
RAM to run job, but when we actually run the job
    not enough GPU RAM is free, so the application fails.
    This can cause a large number of jobs to fail.
    Solution:
    - app_plan() can specify the GPU RAM requirements of an app version.
        This is passed to the client in a new field
        <gpu_ram> of the <app_version> element.
    - prior to starting or restarting a GPU app, the client
        checks the amount of free RAM on the particular GPU.
        If it's not enough for the app version,
        the client doesn't start it,
        and arranges for the scheduler to ignore it for 5 minutes
        (by which point there might be more free GPU RAM)
    Notes:
    1) this change will have effect only when
        both client and scheduler are updated.
    2) the check is done in enforce_schedule(),
        rather than schedule_cpus(),
        because only at that point
        have we assigned a specific GPU to the job.
    3) there's another case to deal with:
        a GPU app's malloc of GPU RAM fails in the middle of the job.
        Currently the job fails.
        I plan to add an API call boinc_temporary_exit(x) so
        that the job can exit and potentially restart in x seconds.
        (In principle this mechanism is sufficient for all cases,
        but it could lead to a lot of starting/exiting,
        so the current change is worthwhile).

svn path=/trunk/boinc/; revision=19864
2009-12-11 22:45:59 +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 67bc7dfc9b - unix: build fixes
svn path=/trunk/boinc/; revision=19755
2009-12-01 17:04:28 +00:00
David Anderson da0ec737e7 - credit tweaks
svn path=/trunk/boinc/; revision=19582
2009-11-15 18:15:35 +00:00
David Anderson 56a8296b5b - scheduler: compute no_jobs_available correctly
in the presence of multiple scheduling types
    (e.g., locality and job array)
    From Nils Brause

svn path=/trunk/boinc/; revision=19559
2009-11-12 21:30:33 +00:00
David Anderson cadcc8c378 - tweaks to new credit simulator (from Kevin Reed)
svn path=/trunk/boinc/; revision=19546
2009-11-12 00:40:30 +00:00
David Anderson d10aae0647 svn path=/trunk/boinc/; revision=19545 2009-11-12 00:22:33 +00:00
David Anderson 1a6119e929 svn path=/trunk/boinc/; revision=19534 2009-11-10 23:39:51 +00:00
David Anderson 3f084596e0 - scheduler: fix bug that caused no ATI jobs to be sent
if max_jobs_in_progress defined.

svn path=/trunk/boinc/; revision=19529
2009-11-10 22:19:36 +00:00
David Anderson aebdd6a72b svn path=/trunk/boinc/; revision=19528 2009-11-10 21:03:50 +00:00
David Anderson 0b93f21caf - Progress on new credit system. Seems to work!
svn path=/trunk/boinc/; revision=19527
2009-11-10 21:00:29 +00:00
David Anderson 45aef88650 - scheduler: maintain WORK_REQ::no_jobs_available correctly
for locality scheduling
- client: avoid spurious error message when parsing
    <proxy_info> from cc_config.xml

svn path=/trunk/boinc/; revision=19524
2009-11-09 23:25:04 +00:00
David Anderson 305239f293 - credit: weight averages by PFC. Else in SETI@home,
a large number of short jobs makes the CUDA version
    look much less efficient than it actually is.

svn path=/trunk/boinc/; revision=19478
2009-11-05 17:17:13 +00:00
David Anderson a83b3fa3ba svn path=/trunk/boinc/; revision=19463 2009-11-04 23:04:07 +00:00
David Anderson 8caa2cf3d5 - test code for new credit system
svn path=/trunk/boinc/; revision=19462
2009-11-04 21:23:56 +00:00
David Anderson 545d137804 - client: no network activity if running CPU benchmarks
svn path=/trunk/boinc/; revision=19375
2009-10-23 21:57:58 +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
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 511a81a5fd - scheduler: improve efficiency of a locality sched query
svn path=/trunk/boinc/; revision=19295
2009-10-13 17:47:26 +00:00
David Anderson d5a41cba9c - scheduler/file upload handler: ignore zero-length cmdline args.
Apparently some Apaches pass them.
    From Nils Brause.

svn path=/trunk/boinc/; revision=19288
2009-10-12 16:44:26 +00:00
David Anderson 0e38392885 - scheduler: skip deadline check for non-CPU-intensive projects
svn path=/trunk/boinc/; revision=19273
2009-10-06 20:45:09 +00:00
David Anderson 8e51669769 - tweak to start
svn path=/trunk/boinc/; revision=19201
2009-09-28 16:19:20 +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 62c1c4811b - scheduler: fix app_plan_uses_gpu()
svn path=/trunk/boinc/; revision=19172
2009-09-25 21:06:34 +00:00
David Anderson 67a42e0106 svn path=/trunk/boinc/; revision=19171 2009-09-25 20:59:13 +00:00
Rom Walton 2f61827ea0 - scheduler: setup priorites for the ATI plan classes
sched/
        sched_customize.cpp

svn path=/trunk/boinc/; revision=19169
2009-09-25 18:39:05 +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 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
Rom Walton 9dd532b54e - scheduler: bug fix.
sched/
        sched_customize.cpp

svn path=/trunk/boinc/; revision=19150
2009-09-23 23:59:19 +00:00