Commit Graph

1732 Commits

Author SHA1 Message Date
David Anderson 38bd1c8def - validator: improved log messages
- fix some compiler warnings


svn path=/trunk/boinc/; revision=21053
2010-04-01 22:51:19 +00:00
David Anderson ad3ed99b96 - scheduler: choose cuda_fermi over other cuda plan classes
svn path=/trunk/boinc/; revision=21052
2010-04-01 21:18:16 +00:00
David Anderson fb851311e0 - server: various changes;
see http://boinc.berkeley.edu/trac/wiki/CreditNew

    Projects will need to update DB and recompile all back-end programs.

    Summary:
    - new way of computing credit
    - "reliable host" mechanism is per app version
    - "host punishment" mechanism is per app version
    - adjustment of wu.rsc_fpops_est provides the
        equivalent of per app version DCF
    - max jobs in progress is now per app
    - max jobs per RPC is now per app

    TODO:
    - reliable mechanism:
        - populate and use host_app_version.error_rate
        - populate host_app_version.turnaround
    - host punishment:
        - populate host_app_version.max_jobs_per_day
        - populate host_app_version.n_jobs_today
        - use app.max_jobs_per_day_init
    - job limits:
        - use app.max_jobs_in_progress, max_gpu_jobs_in_progress
        - use app.max_jobs_per_rpc
    - adjust wu.rsc_fpops_est
    - remove old credit stuff
        fpops_cumulative, credit_multiplier
        credit computation in scheduler

- AVERAGE class: use the Knuth algorithm (Wikipedia)


svn path=/trunk/boinc/; revision=21021
2010-03-29 22:28:20 +00:00
Bernd Machenschalk ed8b0e5499 db_purge:
- fix -one_pass
- added -dont_delete (don't delete from DB, for testing)
- added -daily_dir (write archives in a new directory each day)

svn path=/trunk/boinc/; revision=20993
2010-03-24 10:57:16 +00:00
David Anderson d40be2dbf7 - feeder: compile fix
svn path=/trunk/boinc/; revision=20987
2010-03-23 17:26:05 +00:00
David Anderson f198dc76ad - feeder: with -allapps option, allow some apps to have zero weights;
no jobs will be sent for them.


svn path=/trunk/boinc/; revision=20980
2010-03-22 20:12:24 +00:00
David Anderson 3452bbbc87 - GUI RPC: more replacement of std::string
svn path=/trunk/boinc/; revision=20889
2010-03-13 04:40:37 +00:00
David Anderson 43f0c70458 - credit test program:
It's working pretty well; for S@h, new credit is 56% of old credit,
    whether or not we include small-credit jobs.
- improve AVERAGE class (from John McLeod)

svn path=/trunk/boinc/; revision=20845
2010-03-11 17:49:19 +00:00
David Anderson 08af46829a - credit test program: create a data file separately so you
don't have to do a big DB query each time


svn path=/trunk/boinc/; revision=20837
2010-03-11 04:19:07 +00:00
David Anderson 4f77556c74 - client: if a GPU job is blocked on available mem,
don't fetch more jobs for that resource type

svn path=/trunk/boinc/; revision=20817
2010-03-10 06:00:37 +00:00
David Anderson 0ad0886df3 - server credit stuff.
New policy: anon platform and old platform jobs
    get average credit, possibly scaled by elapsed time.
    We no longer attempt to guess what app version produced them.

svn path=/trunk/boinc/; revision=20816
2010-03-10 00:33:31 +00:00
David Anderson 8062f21d59 - server credit stuff (partial checkin)
svn path=/trunk/boinc/; revision=20810
2010-03-09 04:15:10 +00:00
David Anderson 295d4b54ea - server: major improvements to locality scheduling from Einstein@home.
Triggering the work generator is now done via the DB
    instead of flat files.

    Since only E@h uses locality scheduling,
    I kept the DB changes in a separate file (db/schema_locality.sql).
    There's a new field in the workunit table,
    and that's a required update (in db_update.php)
- manager: compile fix


svn path=/trunk/boinc/; revision=20807
2010-03-05 22:55:16 +00:00
David Anderson 5b7f8b8348 - web: fix bug that caused "send email" and "show hosts"
in project prefs to always select "no"


svn path=/trunk/boinc/; revision=20786
2010-03-04 04:16:00 +00:00
David Anderson a8ed958cd6 - scheduler: cuda_fermi class needs CUDA version 3.0+
- boinccmd: "result" -> "task"

svn path=/trunk/boinc/; revision=20784
2010-03-03 22:36:36 +00:00
David Anderson 12a85e5ced - scheduler: code cleanup: goto considered harmful
- scheduler: when calculate scheduler runtime,
    don't include the part reading request msg from client.
    That can be misleadingly long

svn path=/trunk/boinc/; revision=20781
2010-03-03 19:29:23 +00:00
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