Commit Graph

1864 Commits

Author SHA1 Message Date
David Anderson 4f3d628e29 - client: if detect that system clock has been set backwards
(either at startup or during execution)
    reset a number of "wait until X" variables;
    otherwise we might wait years to contact a project, restart a file xfer, etc.
    Notes:
    - there is no problem setting clocks forward; things just happen prematurely
    - some variables (e.g. task deadlines) are not reset,
        because it's not clear what to set them to
- sched: remove ati_opencl plan class until we understand what it is


svn path=/trunk/boinc/; revision=22842
2010-12-17 01:30:01 +00:00
David Anderson 18f2e90929 - client: work fetch: if the chosen project is currently uploading a file,
and an upload started in the last 5 min, don't fetch work from it.
    The goal is to merge the 2 scheduler RPCs
    (fetch work, report completed taskS) into a single RPC.
    Note: this may result in idleness in some cases.
- scheduler: if client doesn't handle plan class (pre-5.10),
    check plan-class app versions anyway,
    but only use if it's a single-CPU app.
    This allows single-CPU app versions with specific requirements
    (like SSE) to be issued to old clients.
    From Bernd Machenschalk


svn path=/trunk/boinc/; revision=22841
2010-12-13 22:58:15 +00:00
David Anderson 1267531181 - transitioner: fix bug where retry jobs weren't getting sent
because invalid jobs were counted as successful.
    How could this bug possibly have survived this long?
    From TJM (thanks -- who are you?)
    Fixes #1029

svn path=/trunk/boinc/; revision=22839
2010-12-10 00:33:45 +00:00
David Anderson 3de1406265 - scheduler: in app_plan_sse3(): check for CPU features in
p_model as well as p_features;
    pre-6.x clients report them in p_model.
- client: fix bug where "reread config file" didn't update
    the max log file sizes

svn path=/trunk/boinc/; revision=22838
2010-12-09 23:27:11 +00:00
David Anderson 864ee7e3a3 - scheduler: in some cases the system may have a too-low estimate
of the performance of an app version on a host.
    It will then stop using that app version,
    so the estimate never has a chance to converge to its correct value.
    Fix: multiply by a random factor (mean 1, stddev .1)
    when comparing the FLOPS estimates of app versions.

svn path=/trunk/boinc/; revision=22837
2010-12-09 00:32:50 +00:00
David Anderson 58dadd91a8 - client, acct manager protocol:
allow <no_cpu>, <no_cuda> and <no_ati> bools
    within <account> in reply message.
    They suppress work fetch for that resource type from that project.
- scheduler:
    check max_granted_credit after wu.rsc_fpops_bound,
    so that max_granted_credit will be enforced
    even if wu.rsc_fpops_bound is absurdly high
    Fixes #1034.  From Diggory Hardy.


svn path=/trunk/boinc/; revision=22793
2010-12-02 04:53:12 +00:00
David Anderson f8e2d07cf9 - scheduler: add vbox32 and vbox64 plan classes for VirtualBox apps.
svn path=/trunk/boinc/; revision=22778
2010-11-30 19:36:07 +00:00
David Anderson fd8de35b23 - start script: don't write error message if period task is already
running, and output is not a TTY (i.e., cron).
    Otherwise admin gets a lot of spurious emails.

svn path=/trunk/boinc/; revision=22723
2010-11-19 18:42:44 +00:00
David Anderson 3355b66241 - client and scheduler: a client host may have multiple VM systems installed.
TODO: check for VirtualBox on Mac, Linux

svn path=/trunk/boinc/; revision=22704
2010-11-17 23:19:07 +00:00
Rom Walton 1564a49816 - sched: Parse the detected virtual machine software from
the scheduler request so it can be used in plan classes.
        
    db/
        boinc_db.h
    sched/
        sched_types.cpp

svn path=/trunk/boinc/; revision=22703
2010-11-17 20:52:01 +00:00
David Anderson 723c764963 - server: add scripts to submit jobs for demo application
svn path=/trunk/boinc/; revision=22676
2010-11-10 22:54:56 +00:00
David Anderson 2840281c56 - boinccmd: --get_cc_status now prints its result
- feeder: don't panic if can't find app for result;
    if the app is deprecated, it won't be in shmem

svn path=/trunk/boinc/; revision=22674
2010-11-10 18:17:20 +00:00
David Anderson c0612ab77f - make_project: with --test_app, copy all the executables
(for many platforms) from samples/example_app/bin
- make_project: change name of example app from uppercase to example_app.
- update_versions: allow version numbers to not have decimal points
- sample work generator: make app name and template files
    command-line options;
    default to "example_app", "example_app_in.xml", "example_app_out.xml"

svn path=/trunk/boinc/; revision=22667
2010-11-10 00:10:32 +00:00
David Anderson 8905cb6545 - scheduler: bug fix to the above
svn path=/trunk/boinc/; revision=22662
2010-11-09 19:41:53 +00:00
David Anderson 3648818499 - client, scheduler, RPC protocol:
- If the scheduler doesn't have any app versions for resource type X,
        it includes an element <no_X_apps>1</no_X_apps> in the reply msg
        (e.g., <no_cpu_apps>1</no_cpu_apps>)
    - The client parses and stores these flags,
        and doesn't ask a project for work for a resource
        if the project doesn't have app versions for it.
    Apparently I started this change in [19375] (October 2009)
    and forgot to finish it.


svn path=/trunk/boinc/; revision=22661
2010-11-09 19:04:24 +00:00
David Anderson b169e5ab0f - server programs: print error message instead of numeric retval
in log messages

svn path=/trunk/boinc/; revision=22647
2010-11-08 17:51:57 +00:00
David Anderson 7d3d8adc73 - client: comment out update_rec() call
svn path=/trunk/boinc/; revision=22631
2010-11-05 18:02:34 +00:00
David Anderson 8aa29bec33 - validator: fix another bug with --credit_from_wu
- make_project, update scripts: don't quit it user_profiles
    already exists


svn path=/trunk/boinc/; revision=22630
2010-11-05 17:15:27 +00:00
David Anderson 805f73b66c - validator: fix bug with --credit_from_wu
HOWEVER: use of this option is discouraged.
    Use the default credit system.

svn path=/trunk/boinc/; revision=22621
2010-11-03 22:06:56 +00:00
David Anderson ef472e3df7 - client simulator: model the scheduler's deadline check mechanism
- scheduler: improve the deadline check mechanism slightly.
    When updating "estimated delay" (a rough measure of how long
    a resource is saturated with high-priority work)
    take into account the # of instances used by the job,
    and the # of total instances


svn path=/trunk/boinc/; revision=22612
2010-11-01 16:53:41 +00:00
David Anderson 4edfe2ec28 - client: small initial checkin for new scheduling system.
Keep track of per-project recent estimated credit

svn path=/trunk/boinc/; revision=22608
2010-10-29 23:41:34 +00:00
David Anderson ac435d0857 - scheduler: don't send translatable strings to pre-6.12 clients
svn path=/trunk/boinc/; revision=22603
2010-10-28 21:46:18 +00:00
David Anderson b356552c9c - scheduler/feeder: add a project config option <dont_send_jobs>.
If set, the feeder doesn't read jobs into shmem,
    and the scheduler doesn't send jobs.
    Intended for use when a project wants to process
    a backlog of completed jobs and not issue more.

svn path=/trunk/boinc/; revision=22601
2010-10-28 19:02:19 +00:00
David Anderson 40c50852f5 - scheduler: fix logic that deals with jobs that need > 2GB RAM.
My change of 1 Oct ([22440]) required that such jobs
    be processed with 64-bit apps,
    on the assumption that 32-bit apps have a 2 GB user address space limit.
    However, it turns out this limit applies only to Windows
    (kernel and user mode share the 4GB address space; each gets half).
    On Linux, the split is 3GB user / 1 GB kernel.
    On Mac OS X, user mode and kernel mode have separate address spaces,
    each of them 4 GB.


svn path=/trunk/boinc/; revision=22599
2010-10-27 22:58:16 +00:00
David Anderson 7bd620e6b5 - scheduler: instead of "app is not available for your type of computer",
say "app is not available for Microsoft Windows (98 or later) running on an Intel x86-compatible CPU" (or whatever)


svn path=/trunk/boinc/; revision=22537
2010-10-15 20:25:51 +00:00
David Anderson ac83e1e9f7 - client: fix bug with the <max_tasks_reported> config option.
If # of ready-to-report tasks > max_tasks_reported,
    then the excess ready-to-report tasks weren't getting
    reported to the scheduler at all (i.e. not in <other_results> either)
    so the scheduler would resend them
    (not a fatal problem, but a waste of bandwidth).
    From Josef Segur.

svn path=/trunk/boinc/; revision=22500
2010-10-13 23:21:19 +00:00
David Anderson 36a465e3c0 - manager: remove last few instances of "detach" from messages
svn path=/trunk/boinc/; revision=22453
2010-10-06 16:04:22 +00:00
David Anderson be14996a1e - scheduler: deal correctly with jobs that need > 2GB RAM.
Such jobs fail on 32-bit machines, even if they have sufficient RAM,
    because 32-bit OSs don't support address spaces > 2GB.

    In general, we want to support the following scenario:
    - an app has a mixture of small (< 2GB) and big (> 2GB) jobs.
    - there are app versions for both 32b and 64b platforms
    - one of the 32b versions is faster than the 64b version
        (say, it's a 32b GPU app)

    Goals:
    If the client is 32b, send it only small jobs,
        using the fast 32b version if possible
    If the client is 64b and has sufficient RAM,
        send it large jobs using the 64b version;
        send it small jobs using the fast 32b version if possible,
        else the 64b version

    Solution: extend get_app_version() so that it detects big jobs,
        and uses only 64b versions for them.
        Add a "for_64b_jobs" field to BEST_APP_VERSION
        so that we maintain a separate memoized set of
        BEST_APP_VERSIONs for big jobs.

- client: don't set report_results_immediately inappropriately

svn path=/trunk/boinc/; revision=22440
2010-10-01 19:54:09 +00:00
David Anderson 473c12c9d0 - scheduler: typo in app_plan() for ATI GPUs
svn path=/trunk/boinc/; revision=22433
2010-09-30 21:52:13 +00:00
David Anderson 5f5d64c978 - scheduler: check whether client is reporting the same result twice
in a given request message.
    Eliminate duplicates; they mess things up.
- scheduler: fix RESULT#0 problem in message log
- user web: keep credit totals when merging hosts by name

svn path=/trunk/boinc/; revision=22432
2010-09-30 21:40:44 +00:00
David Anderson 794214208f - validator: if credit calculation returns an error,
wait 6 hours before retrying

svn path=/trunk/boinc/; revision=22418
2010-09-28 20:17:09 +00:00
David Anderson 7ac7bdcb04 - scheduler: message tweak
svn path=/trunk/boinc/; revision=22384
2010-09-17 22:01:42 +00:00
David Anderson e4763dc759 - web: server_status.php is not an ops page
svn path=/trunk/boinc/; revision=22381
2010-09-17 03:45:39 +00:00
David Anderson 3882d875c8 - back end: compile fixes
svn path=/trunk/boinc/; revision=22343
2010-09-13 23:40:32 +00:00
David Anderson 3de5a1d410 - client: remove spurious msgs about deleting files while in use
- scheduler: add log messages related to max jobs in progress

svn path=/trunk/boinc/; revision=22342
2010-09-13 21:20:30 +00:00
David Anderson 6df96d612a - boinc_cmd: don't crash if can't connect to local client
svn path=/trunk/boinc/; revision=22338
2010-09-12 01:10:39 +00:00
David Anderson 18b5b46aab - scheduler: fix "prefer_primary_platform" logic (I hope).
svn path=/trunk/boinc/; revision=22332
2010-09-09 20:01:28 +00:00
David Anderson 84679f482a - scheduler: change the "primary_platform_only" config option
to "prefer_primary_platform".
    If an app has only only 32-bit versions, use the for 64-bit clients.


svn path=/trunk/boinc/; revision=22282
2010-08-22 19:13:25 +00:00
David Anderson 0894974aa7 Update Translations
svn path=/trunk/boinc/; revision=22275
2010-08-20 19:04:09 +00:00
David Anderson cd2c971c8c - scheduler: message tweak
svn path=/trunk/boinc/; revision=22240
2010-08-14 23:23:36 +00:00
David Anderson 1dfeecf698 - feeder: don't error out when an ordering option is used with HR;
if some apps don't use HR the ordering option will apply to them.

svn path=/trunk/boinc/; revision=22238
2010-08-14 23:16:11 +00:00
David Anderson 3dffe0a8bc - API: remove deprected stuff related to:
1) old-style apps with graphics in main program.
        No one should be using these anymore.
    2) writing init_data.xml in boinc_finish().
        This was used by deprecated "compound app" scheme
- scheduler: if request reports results that were previously reported,
    that's evidence that the previous reply was not received by client.
    It may have contained results.
    So set a "resend lost results" flag.

svn path=/trunk/boinc/; revision=22203
2010-08-11 22:02:41 +00:00
David Anderson b2064d0cd0 - admin: add script for deleting results with no workunit.
There were ~1,400 of these on SETI@home,
    presumably because of a bug at some point in the past.

svn path=/trunk/boinc/; revision=22197
2010-08-11 18:52:11 +00:00
David Anderson d79ca6a9f2 - scheduler: add <primary_platform_only> config option:
send only 64-bit app versions to 64-bit hosts 
    (the default is to send whatever app version is fastest)

svn path=/trunk/boinc/; revision=22183
2010-08-10 22:17:59 +00:00
David Anderson 23de5a887f - client/scheduler: tweak translatable messages
svn path=/trunk/boinc/; revision=22129
2010-08-04 18:41:24 +00:00
David Anderson 89ef71abbf - scheduler: fix bug that crashed if app_info.xml
refers to nonexistent app

svn path=/trunk/boinc/; revision=22090
2010-08-02 03:43:38 +00:00
David Anderson 570c5cbfa4 - file deleter: if we're configured to generate cached MD5 checksums,
delete those files too.
- scheduler: add log messages (conditioned by debug_credit)
    if result.fpops_cumulative or result.fpops_per_cpu_sec is present

svn path=/trunk/boinc/; revision=22083
2010-07-31 04:08:14 +00:00
David Anderson e0cea31781 - API: add result name to APP_INFO_DATA structure (for Volpex)
- scheduler: add max_download_urls_per_file config option
    (to limit the length of workunit.xml_doc,
    which is currently capped at 64KB).
    From Bernd.

svn path=/trunk/boinc/; revision=22082
2010-07-30 21:43:23 +00:00
David Anderson 6b8a569d6d - client/scheduler: fix a group of bugs related to the new mechanism
where the client tells the scheduler which app versions
    its queued jobs use
    (this is needed, e.g., to enforce per-app or per-resource job limits).
    In this mechanism, the client sends an array of <app_version>s,
    and each <other_result> includes an index into this array.

    - The wrong index was being sent (client).
    - If an <app_version> had a non-existent app name
        (e.g. because that app had been deprecated)
        it wasn't getting put in the array, invalidating array indices
        Furthermore, an erroneous message was being sent to the user

        Fix: if parse error for <app_version>,
        put it in the array anyway, but with cav.app = NULL,
        meaning that it's a place-holder.
        Send a message to user only if anon platform.

- manager: increase notice buffers to 64K

svn path=/trunk/boinc/; revision=22052
2010-07-23 17:43:20 +00:00
David Anderson c0776ea188 - user web: put RSS item titles in CDATA
- sched: get rid of unused config items
- manager: msg tweak

svn path=/trunk/boinc/; revision=22045
2010-07-22 22:57:15 +00:00