Commit Graph

45 Commits

Author SHA1 Message Date
David Anderson d41f79588d - server daemons: add daemon_sleep(n), which sleeps for n secs
but checks for the "stop_daemons" trigger file every 1 sec.
    Use this instead of sleep() in daemons.
    This will speed up bin/stop.


svn path=/trunk/boinc/; revision=25708
2012-05-23 18:11:59 +00:00
David Anderson 9c154484ee - fix many problems with validator_test
svn path=/trunk/boinc/; revision=25582
2012-04-19 08:47:38 +00:00
David Anderson 130d6ed4f0 - server: revamp the "assigned job" mechanism.
This now supports two main use cases:
    1) there's a job that you want to run once on all hosts,
        present and future
        (or all hosts belonging to a user, or to a team).
        The job is never transitioned, validated, or assimilated.
    2) There's a normal job for which you want to use only
        hosts belonging to a specific user (e.g. cluster or cloud hosts).
        This restriction can be made either when the job is created,
        or on the fly,
        e.g. as part of a scheme for accelerating batch completion.
        For the latter purposes we now provide a function
            restrict_wu_to_user(DB_WORKUNIT&, int userid);

        The job goes through the standard
        transitioner/validator/assimilator path.

    These cases are enabled by config flags
        <enable_assignment_multi/>
        <enable_assignment/>
    respectively.

    Assignment of type 2) are no longer stored in shared mem,
    so there is no limit on their number.

    There is no longer a rule that assigned job names must contain "asgn".

    NOTE: this requires a database update.


svn path=/trunk/boinc/; revision=25169
2012-01-30 22:39:13 +00:00
David Anderson dd16170fc1 - scheduler: the p_fpops value reported by clients can't be trusted.
Some credit cheats (e.g. with credit_by_runtime) can be done
    by reporting a huge value.
    Fix this by capping the value at 1.1 times the 95th percentile
    of host.p_fpops, taken over active hosts.


svn path=/trunk/boinc/; revision=25017
2012-01-09 17:35:48 +00:00
David Anderson dd93780787 - API and client: add "ncpus" field to APP_INIT_DATA.
Tells multicore apps how many cores to use.
    The --nthreads command line arg to the app is now deprecated
    though we'll keep it around for the time being.


svn path=/trunk/boinc/; revision=24708
2011-12-01 18:44:19 +00:00
David Anderson eeab2aee92 - simulator work
- fix some indentation

svn path=/trunk/boinc/; revision=22891
2011-01-07 20:23:22 +00:00
David Anderson b2451544e1 - server: change the following from per-host to per-(host, app version):
- daily quota mechanism
    - reliable mechanism (accelerated retries)
    - "trusted" mechanism (adaptive replication)
- scheduler: enforce host scale probation only for apps with
    host_scale_check set.
- validator: do scale probation on invalid results
    (need this in addition to error and timeout cases)
- feeder: update app version scales every 10 min, not 10 sec
- back-end apps: support --foo as well as -foo for options

Notes:
- If you have, say, cuda, cuda23 and cuda_fermi plan classes,
    a host will have separate quotas for each one.
    That means it could error out on 100 jobs for cuda_fermi,
    and when its quota goes to zero,
    error out on 100 jobs for cuda23, etc.
    This is intentional; there may be cases where one version
    works but not the others.
- host.error_rate and host.max_results_day are deprecated

TODO:
    - the values in the app table for limits on jobs in progress etc.
        should override rather than config.xml.

Implementation notes:
scheduler:
    process_request():
        read all host_app_versions for host at start;
        Compute "reliable" and "trusted" for each one.
        write modified records at end
    get_app_version():
        add "reliable_only" arg; if set, use only reliable versions
        skip over-quota versions
    Multi-pass scheduling: if have at least one reliable version,
        do a pass for jobs that need reliable,
        and use only reliable versions.
        Then clear best_app_versions cache.
    Score-based scheduling: for need-reliable jobs,
        it will pick the fastest version,
        then give a score bonus if that version happens to be reliable.
    When get back a successful result from client:
        increase daily quota
    When get back an error result from client:
        impose scale probation
        decrease daily quota if not aborted
Validator:
    when handling a WU, create a vector of HOST_APP_VERSION
        parallel to vector of RESULT.
        Pass it to assign_credit_set().
        Make copies of originals so we can update only modified ones
    update HOST_APP_VERSION error rates
Transitioner:
    decrease quota on timeout


svn path=/trunk/boinc/; revision=21181
2010-04-15 03:13:56 +00:00
David Anderson b300519444 svn path=/trunk/boinc/; revision=18825 2009-08-10 04:49:02 +00:00
David Anderson 9bca753fd5 - scheduler, file upload handler: fix server runtime message in FCGI case
svn path=/trunk/boinc/; revision=16890
2009-01-12 23:05:49 +00:00
David Anderson 0f8f9f3dab - API: in boinc_exit(), release the lockfile only if
we're the main program (otherwise we didn't lock it in
    the first place, and a crash results).  From Artyom Sharov.
- scheduler: add support for the GCL simulator,
    which uses special versions of backend programs
    that use virtual time,
    and that wait for signals instead of sleep()ing.

    To compile:
        make clean
        configure CXXFLAGS="-DGCL_SIMULATOR"
        make

svn path=/trunk/boinc/; revision=16036
2008-09-22 17:52:41 +00:00
David Anderson 4f66bb4c95 - added copyright and license info to .C, .cpp, .h files
- scheduler: fix bug in adaptive replication:
    if send an unreplicated job to untrusted host,
    set both wu.target_nresults and wu.min_quorum to app.target_nresults.

svn path=/trunk/boinc/; revision=15762
2008-08-06 18:36:30 +00:00
Eric J. Korpela a5a6f693cd - Implementation of automatic credit leveling for cpu based projects that
wish to use it.
- The script calculate_credit_multiplier (expected to be run daily as
      a config.xml task) looks at the ratio of granted credit to CPU time 
      for recent results for each app.  Multiplier is calculated to cause 
      median hosts granted credit per cpu second to equal to equal that 
      expected from its benchmarks.  This is 30-day exponentially averaged 
      with the previous value of the multplier and stored in the table 
      credit_multplier.
- When a result is received the server adjusts claimed credit by the
      value the multiplier had when the result was sent.


svn path=/trunk/boinc/; revision=15661
2008-07-22 23:36:55 +00:00
David Anderson a1664cc070 - scheduler: simplified Carl's checkin (avoid virtual destructors)
- API: small tweak for standalone

svn path=/trunk/boinc/; revision=14679
2008-02-05 21:26:43 +00:00
David Anderson 94fdec8b70 - scheduler: send log messages to file, rather than httpd error log,
when using FCGI (from Carl Christensen)

svn path=/trunk/boinc/; revision=14678
2008-02-05 20:16:57 +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
David Anderson 45f04aa04b - back end: make it possible to run multiple instances of make_work,
for WUs of different applications
    (need to count unsent results separately by app)
- feeder: major code cleanup
    - application interleaving (for -allapps) is now done
        by building a static slot-to-app array "app_indices".
        Fractional weights now work correctly.
    - enum sizes (for -allapps) are now precomputed
        in an array "enum_sizes"
    - rename "found" (confusing!!) to "collision"
    - swapped the names of mod_select_clause and select_clause,
        to reflect what they actually are
- file deleter: in finding oldest WU, order by id instead of create_time
    (there's no index on create_time)
- user web: show "merge by name" only to host owner
- add cpu_scheduler_period() member to GLOBAL_PREFS
    (so you don't have to multiply by 60 everywhere)
- infinite() fix for HPUX

client/
    cpu_sched.C
    cs_cmdline.C
    cs_scheduler.C
    rrsim_test.C
    sim.C
    work_fetch.C
html/user/
    hosts_user.php
lib/
    parse.h
    prefs.h
sched/
    feeder.C
    file_deleter.C
    make_work.C
    sample_work_generator.C
    sched_util.C,h
tools/
    updater.C

svn path=/trunk/boinc/; revision=12968
2007-06-20 16:27:27 +00:00
David Anderson 3431d99471 svn path=/trunk/boinc/; revision=12414 2007-04-18 20:49:58 +00:00
Bruce Allen f19d074a87 Sched code: move function into sched_util; useful for project
validation.
Minor E@H specific change

svn path=/trunk/boinc/; revision=10287
2006-06-09 19:07:34 +00:00
Jeff Cobb 5218ad9bdf Jeff - pull out old hier dir/url hash function
svn path=/trunk/boinc/; revision=8163
2005-09-23 21:09:00 +00:00
Bruce Allen a6bf4fc4d3 - Backend: To prevent possible namespace confusion in the future, changed the
name of elapsed_time() to elapsed_wallclock_time().
- Backend logging statements on exit() which echo elapsed run time to logs now
      do this with much higher printed precision.
- Backend logging, separate scheduler requests with an almost blank line

svn path=/trunk/boinc/; revision=8027
2005-09-15 15:07:41 +00:00
David Anderson ece2ec37db *** empty log message ***
svn path=/trunk/boinc/; revision=6182
2005-05-17 21:08:48 +00:00
Bruce Allen 835c2090f5 log execution times for two cgi scripts (scheduler and
file_upload_handler)

better print format for timezone

svn path=/trunk/boinc/; revision=6023
2005-05-04 16:31:25 +00:00
David Anderson 20656a03df *** empty log message ***
svn path=/trunk/boinc/; revision=5499
2005-02-23 00:11:59 +00:00
David Anderson 8d0ab453b3 *** empty log message ***
svn path=/trunk/boinc/; revision=5443
2005-02-16 23:17:43 +00:00
Bruce Allen feb50863c2 More sched locality and other scheduler changes.
- Address David's comment of Feb 2.  Now properly reduce the
disk size resource requirements of a WU being sent if the
file is already on the host, or already included in a previous
WU being sent. DAVID: please check that reply_copy.wus.pop_back()
is right.
- For this, define a function host_has_file().  This can also
be used in the future for more intelligent file deletion
schemes.
- Make warnings to upgrade old clients have low priority until
3 days before deadline.  Then high priority.
- Fix sign error in messages sent to users about insufficient
disk space.
- Move extract_filename() from sched_locality.C to sched_util.C
- Pretty up the ordered list of URLs printed for a given host.
- I've even tested these changes before committing them!

svn path=/trunk/boinc/; revision=5382
2005-02-10 06:21:58 +00:00
David Anderson 435f8edd47 *** empty log message ***
svn path=/trunk/boinc/; revision=5161
2005-01-20 23:22:22 +00:00
David Anderson 98e93a0a5d *** empty log message ***
svn path=/trunk/boinc/; revision=5029
2005-01-08 06:54:03 +00:00
David Anderson 2c5f1d1a5b *** empty log message ***
svn path=/trunk/boinc/; revision=4772
2004-12-06 22:41:19 +00:00
David Anderson 161fb2868f *** empty log message ***
svn path=/trunk/boinc/; revision=4189
2004-09-13 18:05:54 +00:00
David Anderson 000b18f565 *** empty log message ***
svn path=/trunk/boinc/; revision=3314
2004-05-03 19:30:01 +00:00
David Anderson dd51f9ea18 *** empty log message ***
svn path=/trunk/boinc/; revision=3232
2004-04-08 08:15:23 +00:00
David Anderson 9767991240 *** empty log message ***
svn path=/trunk/boinc/; revision=3228
2004-04-07 06:51:42 +00:00
David Anderson f4d30aa220 *** empty log message ***
svn path=/trunk/boinc/; revision=2840
2003-12-31 23:09:21 +00:00
David Anderson 76ce035063 *** empty log message ***
svn path=/trunk/boinc/; revision=2773
2003-12-10 00:54:17 +00:00
David Anderson 2f229d2f54 *** empty log message ***
svn path=/trunk/boinc/; revision=2463
2003-10-14 23:40:50 +00:00
David Anderson 4f9dd9b18b *** empty log message ***
svn path=/trunk/boinc/; revision=2064
2003-08-12 20:58:24 +00:00
Karl Chen aa79f220c1 config.xml paths ; test scripts
svn path=/trunk/boinc/; revision=1654
2003-07-09 23:54:45 +00:00
Karl Chen 7881eb5cbf rewrote logging facilities
svn path=/trunk/boinc/; revision=1634
2003-07-02 02:02:18 +00:00
David Anderson 636bb2ce04 license change
svn path=/trunk/boinc/; revision=1629
2003-07-01 20:37:09 +00:00
Karl Chen 1a2a84cdf7 *** empty log message ***
svn path=/trunk/boinc/; revision=1620
2003-07-01 00:39:54 +00:00
Karl Chen a2fc72deb1 improved scheduler logging ; use a library
svn path=/trunk/boinc/; revision=1619
2003-07-01 00:20:22 +00:00
Karl Chen dfa0325c19 write pid to pidfile ; trap sigints and exit on check_stop_trigger() ; stop servers by killing them
svn path=/trunk/boinc/; revision=1556
2003-06-20 01:31:03 +00:00
Eric Heien 65dbd70e64 *** empty log message ***
svn path=/trunk/boinc/; revision=1397
2003-06-11 23:36:40 +00:00
David Anderson 756384d8b4 update_stats bug fixes
svn path=/trunk/boinc/; revision=1035
2003-03-08 23:50:21 +00:00
Eric Heien 048ba6b6c9 update_stats program
svn path=/trunk/boinc/; revision=1030
2003-03-08 00:09:40 +00:00