Commit Graph

99 Commits

Author SHA1 Message Date
David Anderson ee0ca3973c - scheduler: add "distinct_beta_apps" option;
lets users filter out beta apps as well as others
    (from Nicolas Maire)

svn path=/trunk/boinc/; revision=14971
2008-03-27 21:39:02 +00:00
David Anderson 4e9fbac5e0 - admin web: touch reread_db in manage_app_versions.php
- DB code: remove "is_high_priority" stuff.
- scheduler: merge find_app_version() into get_app_version().
    Have the latter memoize its results (both positive and negative).
    Have it call app_plan() for apps with nonempty plan_class.
- scheduler: first steps towards improved selectability of log messages.
    It will eventually be like the client,
    where you can select among various types of messages.
- feeder: if can't unlink the reread_db trigger file, exit
    (else we'd go into an infinite loop)

svn path=/trunk/boinc/; revision=14940
2008-03-18 21:22:44 +00:00
David Anderson 95772cba77 - removed boinc_ncpus_available() and boinc_nthreads() calls.
The design has been changed to constant #threads per app version
    Various changes from Kevin Reed/WCG:
    - server: add workunit.rsc_bandwidth_bound: if nonzero,
        send this WU only to hosts with that much download bandwidth
    - assimilators: if a handler returns DEFER_ASSIMILATION,
        the WU remains in INIT state and will be handled when the
        next instance completes.
        Useful if you want the assimilator to see all instances.
    - scheduler: when setting result.outcome = DETACHED,
        set received_time to now
    - scheduler: removed the reliable_time and reliable_min_avg_credit
        options
    - scheduler/web: add optional <allow_non_preferred_projects>
        in project preferences.
        If present, user will accept work from non-selected apps
        if no work is available for selected apps
    - scheduler: improved messages for projects with multiple apps
    - scheduler: added config options
        <granted_credit_weight> and <granted_credit_ramp_up>.
        Used in calculating host.claimed_credit_per_cpu_sec,
        but I'm not sure how.
    - Added two new credit-granting formulas (validate_util.C):
        stddev_credit() and two_credit()
    - server DB: add rollback_transaction() and affected_rows() to DB_CONN

    NOTE: DB update required

svn path=/trunk/boinc/; revision=14870
2008-03-07 21:13:01 +00:00
David Anderson a09e19b8dc - scheduler: add a general method for excluding hosts from job distribution.
config.xml has optional <ban_os> and <ban_cpu> elements,
    which contain regular expressions matched against
    os_name\tos_version and p_vendor\tp_model.
    If a host matches either one, it's not sent jobs.
- scheduler: fix bug in job assignment
- scheduler: initial (incompleted, commented-out) code for
    matchmaker scheduling
- server programs: declare "SCHED_CONFIG config" in sched_config.C;
    remove declarations of it from all other .C files
    (because I added a vector to it, I can no longer use memset
    to initialize it to zero; instead, it must be a global variable,
    not an automatic)

svn path=/trunk/boinc/; revision=14783
2008-02-25 18:05:04 +00:00
David Anderson 42d2abfa34 - scheduler: code cleanup, remove "SCHED_MSG_LOG::" from a zillion places
svn path=/trunk/boinc/; revision=14774
2008-02-21 21:00:58 +00:00
David Anderson 79f6720547 - scheduler: add <max_ncpus> config option.
Use this with N=1 if your application primarily uses a coprocessor

svn path=/trunk/boinc/; revision=14772
2008-02-21 20:10:10 +00:00
David Anderson 54519a4ee1 - Server: add "job assignment" feature.
Lets you assign a WU to a particular host,
    to one or all hosts belonging to a user or team, or to all hosts.
    See http://boinc.berkeley.edu/trac/wiki/AssignedWork
    Disabled unless you include <enable_assignment> in config.xml
    Uses a new DB table.
    Tested but only a little.
- Server: code cleanup; moved result-handling to a new file,
    and removed the PLATFORM_LIST arg to everything
    (put it in SCHEDULER_REQUEST instead)

svn path=/trunk/boinc/; revision=14767
2008-02-21 00:47:50 +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
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
Bruce Allen 6b1aa1cdf2 - scheduler: added config option to control (turn off) some aspects
of file deletion. If you set file_deletion_strategy to 0 (default)
      then this turns off file deletion in the locality scheduler.
      Set file_deletion_strategy to 1 to get current behavior.  Other
      values are not defined.  I'll document this in the Wiki.

    sched/
        sched_config.h
        sched_config.C
        sched_locality.C

svn path=/trunk/boinc/; revision=13594
2007-09-17 15:58:36 +00:00
David Anderson ef80e8576f - Added program sched/sched_driver.C.
This generates a sequence of scheduler requests,
    with host info taken from a file,
    that you can feed into the scheduler (cgi --batch)
    to simulate things like homogeneous redundancy
- Added args to XML_PARSER::skip_unexpected() to you can say
    whether to write messages to stderr for unparsed stuff.
    This is set to true if log_flags.unparsed_xml is set (client)
    or if debug_level is 3 (server)
- removed references to $(LIBRSA) in Makefile.am's

client/
    Makefile.am
    acct_mgr.C
    gui_rpc_server_ops.C
    log_flags.C
lib/
    Makefile.am
    app_ipc.C
    gui_rpc_client_ops.C
    parse.C,h
    prefs.C
sched/
    Makefile.am
    sched_config.C
    sched_driver.C

svn path=/trunk/boinc/; revision=13090
2007-07-03 21:55:50 +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
David Anderson 981eef6b14 - Scheduler: changed the <homogeneous_redundancy> option
from a bool to an int:
    0 = no HR
    1 = HR with fine-grained classification (from MF Somers)
    2 = HR with coarse-grained classification (from WCG)

    Note: numerical equivalence depends on your application
    and how it's compiled.  Some apps may need classifications
    other than these two.  Contact me if so.

sched/
    sched_hr.C
    sched_config.C,h

svn path=/trunk/boinc/; revision=12934
2007-06-14 15:05:20 +00:00
David Anderson df5909d473 - scheduler: add no_darwin_6 option
(don't send work to Mac OS X 10.2 or earlier).
    This used to be #ifdef in by Einstein@home.
- scheduler: add no_amd_k6 option
    (don't send work to AMD K6 CPUs)

sched/
    handle_request.C
    sched_config.C,h

svn path=/trunk/boinc/; revision=12912
2007-06-12 21:40:32 +00:00
David Anderson 1e7e58875a - client: add cmdline options --exit_before_start and --exit_after_finish.
This cause the core client to exit immediately before or after
    running a job,
    letting you examine the contents of the slot directory.
- scheduler: changed max # of CPUs used in daily_result_quota
    limit from 4 to 8, and make it a compile-time parameter
- feeder/scheduler: make the number of work items in shared
    memory configurable (in config.xml).
    The element is <shmem_work_items>
- feeder: make the size of the work item query configurable
    (<feeder_query_size)
- feeder: remove code related to removing infeasible results
    from shared mem.
    This mechanism was never needed,
    and I think a timeout would accomplish the same effect.

client/
    app.C
    app_start.C
    client_state.C,h
    cs_cmdline.C
sched/
    feeder.C
    sched_array.C
    sched_config.C,h
    sched_send.C
    sched_shmem.C,h
    sched_util.C
    show_shmem.C

svn path=/trunk/boinc/; revision=12771
2007-05-29 21:45:01 +00:00
David Anderson 4f81994be6 - Add a mechanism for a project to shut down gracefully.
If <ended>1</ended> is included in config.xml,
    this gets send to clients,
    and they display a "Project ended - OK to detach" message.

client/
    client_state.C
    client_types.C,h
    scheduler_op.C
clientgui/
    VIewProjects.cpp
    VIewProjectsGrid.cpp
lib/
    gui_rpc_client.h
    gui_rpc_client_ops.C
    gui_rpc_client_print.C
sched/
    sched_config.C,h
    server_types.C

svn path=/trunk/boinc/; revision=12742
2007-05-24 16:07:21 +00:00
David Anderson 087aa84915 - scheduler: fix bug that caused crash in anonymous platform case;
don't send result platform or version num if anon platform.
- back end: parse server status-related config elements
    (wwww_host etc.) to avoid XML warnings

sched/
    sched_config.C
    sched_send.C
    server_types.C

svn path=/trunk/boinc/; revision=12701
2007-05-21 14:49:00 +00:00
David Anderson 826e65f8d0 - client simulator: fix cpu_sched_rr_only bug
- boinc_cmd: canonicalize URLs
- user web: fix link to Top Teams
- back end: remove code related to alternate download dir

client/
    cpu_sched.C
    sim.C
html/
    inc/
        stats_sites.inc
    user/
        stats.php
lib/
    boinc_cmd.C
sched/
    file_deleter.C
    sched_config.C,h

svn path=/trunk/boinc/; revision=12694
2007-05-18 22:02:51 +00:00
David Anderson 01f4851323 - scheduler: add max_wus_in_progress option.
Limits total # of in-progress results per host
    (independently of #CPUs)

sched/
    sched_config.C,h
    sched_resend.C
    sched_send.C
    server_types.h


svn path=/trunk/boinc/; revision=12661
2007-05-14 15:21:38 +00:00
David Anderson a37403a673 - scheduler: add <workload_sim> config option.
If set, the scheduler will use EDF simulation,
    together with the in-progress workload reported by the client,
    to avoid sending results that
    1) will miss their deadline, or
    2) will cause an in-progress result to miss its deadline, or
    3) will make an in-progress result miss its deadline
        by more than is already predicted.
    If this option is not set, or if the client request doesn't
    include a workload description (i.e. the client is old)
    use the existing approach, which assumes there's no workload.
    NOTE: this is experimental.  Production projects should not use it.
- EDF sim: write debug stuff to stderr instead of stdout
- Account manager:
    - if an account is detach_when_done, set dont_request_more_work
    - check done_request_more_work even for first-time projects
- update_uotd: generate a file for use by Google gadget
- user_links(): use full URLs (so can use in Google gadget)

client/
    acct_mgr.C
    work_fetch.C
html/
    inc/
        uotd.inc
        util.inc
    user/
        uotd_gadget.php (new)
sched/
    Makefile.am
    edf_sim.C
    sched_config.C,h
    sched_resend.C
    sched_send.C,h
    server_types.C,h

svn path=/trunk/boinc/; revision=12639
2007-05-10 21:50:52 +00:00
Rytis Slatkevičius 69e5386c8b Ignore <akismet_key> in SCHED_CONFIG::parse
svn path=/trunk/boinc/; revision=12498
2007-04-29 13:08:31 +00:00
David Anderson 1880a50cc5 David 19 Apr 2007
- Change things so that make_project installs a test application
        (uppercase) and the daemons to go along with it
        (sample_work_generator, sample_bitwise_validator, sample_assimilator).
        This is mostly working, not completely.

    apps
        upper_case.C
    html/ops/
        mass_email_script.php
    py/Boinc/
        setup_project.py
    sched/
        sched_config.C,h
        sample_work_generator.C
    tools/
        make_project
        project.xml
        Makefile.am

svn path=/trunk/boinc/; revision=12422
2007-04-19 22:11:25 +00:00
David Anderson 1ea3bb781e David 18 Apr 2007
- bug fixes for sample work generator

    sched/
        sched_config.C,h
        sample_work_generator.C


svn path=/trunk/boinc/; revision=12417
2007-04-19 03:12:13 +00:00
David Anderson 3431d99471 svn path=/trunk/boinc/; revision=12414 2007-04-18 20:49:58 +00:00
David Anderson 564504eff6 svn path=/trunk/boinc/; revision=12402 2007-04-17 17:12:44 +00:00
David Anderson 66071c9de1 svn path=/trunk/boinc/; revision=12373 2007-04-16 22:22:15 +00:00
David Anderson 75a2b2c55b *** empty log message ***
svn path=/trunk/boinc/; revision=12322
2007-04-05 17:02:01 +00:00
David Anderson cf4ed3d546 *** empty log message ***
svn path=/trunk/boinc/; revision=12242
2007-03-19 00:10:36 +00:00
David Anderson 138f17af40 *** empty log message ***
svn path=/trunk/boinc/; revision=12216
2007-03-13 19:33:27 +00:00
David Anderson 5cb43bbcf5 *** empty log message ***
svn path=/trunk/boinc/; revision=12210
2007-03-11 03:15:17 +00:00
Bruce Allen f6b68e7068 - scheduler: stop logging error messages about unrecognized
<no_forum_rating> tag.
- locality scheduler: when getting a working set file name
      using glob(3), do not glob multiple times, possibly getting
      back the same file name again.  Instead glob once and then
      randomly choose file names, crossing items off the list one
      at a time. Note: I wrote this code using STL vectors and
      strings, but now regret this: the necessary vector insertions
      are potentially inefficient..  Sometime next week I will
      recode this using a C-style pointer arrays with guaranteed O(1)
      efficiency.  But I want to get this into CVS while it's
      working.
- locality scheduler: fix is_host_slow() function following
      David's Jan 12 checkins to use claimed_credit_per_cpu_sec.

svn path=/trunk/boinc/; revision=12156
2007-02-25 05:29:31 +00:00
David Anderson ff91c8450f *** empty log message ***
svn path=/trunk/boinc/; revision=12004
2007-01-30 18:19:30 +00:00
David Anderson 76cc3ab30d *** empty log message ***
svn path=/trunk/boinc/; revision=11597
2006-11-28 03:27:13 +00:00
David Anderson e12f6efa55 *** empty log message ***
svn path=/trunk/boinc/; revision=11340
2006-10-23 14:08:20 +00:00
David Anderson c98a2415af *** empty log message ***
svn path=/trunk/boinc/; revision=11336
2006-10-22 00:42:44 +00:00
David Anderson 5fea7f0226 *** empty log message ***
svn path=/trunk/boinc/; revision=10976
2006-08-23 03:34:30 +00:00
David Anderson 121043ac9f *** empty log message ***
svn path=/trunk/boinc/; revision=10973
2006-08-22 21:52:44 +00:00
David Anderson 5af4702c1d *** empty log message ***
svn path=/trunk/boinc/; revision=10957
2006-08-21 22:25:21 +00:00
David Anderson ba63f6c949 *** empty log message ***
svn path=/trunk/boinc/; revision=10955
2006-08-21 19:41:25 +00:00
David Anderson 3c80d4726f verify-files-on-app-start option
svn path=/trunk/boinc/; revision=10413
2006-06-20 17:36:28 +00:00
David Anderson 4811c240b3 *** empty log message ***
svn path=/trunk/boinc/; revision=10329
2006-06-13 20:27:35 +00:00
David Anderson 016112bf0d scheduler logging
svn path=/trunk/boinc/; revision=10261
2006-06-07 04:10:04 +00:00
David Anderson 3199549ec8 *** empty log message ***
svn path=/trunk/boinc/; revision=10259
2006-06-07 00:09:05 +00:00
Bruce Allen 490d4858bf scheduler: do a better job of accepting results from host machines
which may modify an EXISTING & OVER result in the database.

file_upload_handler: check for 'stop_upload' trigger file in the
project root directory.  If so, return ERR_TRANSIENT to hosts which
attempt uploads.  This is the equivalent of 'stop_sched' for the
scheduler.  (Eric, you may want to check that this is FCGI compatible).

svn path=/trunk/boinc/; revision=10227
2006-05-31 20:39:32 +00:00
David Anderson 210e22e537 *** empty log message ***
svn path=/trunk/boinc/; revision=10226
2006-05-31 17:19:29 +00:00
David Anderson aa07d32e39 *** empty log message ***
svn path=/trunk/boinc/; revision=10208
2006-05-26 19:40:11 +00:00
David Anderson 6519a32c8c *** empty log message ***
svn path=/trunk/boinc/; revision=10200
2006-05-25 18:51:57 +00:00
David Anderson 033cab5e44 *** empty log message ***
svn path=/trunk/boinc/; revision=10195
2006-05-25 05:22:10 +00:00
David Anderson 85be4593fa symstore support
svn path=/trunk/boinc/; revision=10174
2006-05-22 09:54:31 +00:00
David Anderson 50864e7dd9 *** empty log message ***
svn path=/trunk/boinc/; revision=9615
2006-03-07 21:46:49 +00:00