Commit Graph

53 Commits

Author SHA1 Message Date
Eric J Korpela 5cfe879332 - Moved definitions of some scheduler paramerters from .cpp file to
sched_customize.h.  Their definitions in source are now protected with #ifdef
  to prevent warnings.
- Created #defined parameters for GPU memory requirements of the GPU plan
  classes
- Fixed some logging problems in sched_customize.h and expanded logging in some
  place in the GPU plan class selection.
- Reeplaced opencl_*_101 plan classes with more generic (but compatible)
  opencl_*_<ver> plan classes where the opencl version is determined from the
  plan class name.  This is so we don't need to write new plan classes to go
  from openc 1.1 to opencl 1.2. Just change the name of the plan class from
  opencl_nvidia_101 to opencl_nvidia_102 and it's done.
2013-03-07 11:28:43 +01:00
David Anderson 2ded3ff67d - fix typo in GUI RPC
- check in some code for multi-user job prioritization
2013-03-04 15:23:39 +01:00
David Anderson 11a6e85632 - scheduler: support for projects with some non-CPU-intensive apps
(but not all) wasn't finished.
    New logic: if the project has an NCI app then:
    - make a list of NCI apps for which the client doesn't have
        a job in progress.
    - try to send one job for each of these apps
    - do this even if no work is being requested.
    - don't send jobs for NCI apps by other mechanisms

NOTE: the client logic isn't quite right for mixed NCI projects.
    If there's no job for a given NCI app,
    the client should do a scheduler RPC.
    This isn't critical so we won't do this now.


svn path=/trunk/boinc/; revision=26068
2012-09-01 04:58:12 +00:00
David Anderson 96b6e172f9 - scheduler: improved log messages for limited locality scheduling
svn path=/trunk/boinc/; revision=26065
2012-08-29 03:09:10 +00:00
David Anderson 9ccb8fa38d - scheduler: add support for limited locality scheduling
- API: remove support for PPM files


svn path=/trunk/boinc/; revision=26062
2012-08-27 17:00:43 +00:00
David Anderson fd0983b991 - web: server status page should show elapsed time, not CPU time
svn path=/trunk/boinc/; revision=25785
2012-06-22 07:35:54 +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 1366dc1cdc - scheduler: if using homogeneous app version,
and a WU is committed to an app version that's been superceded,
    treat it as committed to the later version.


svn path=/trunk/boinc/; revision=24776
2011-12-12 22:57:58 +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 5035007b90 - back end: new way of deciding:
- whether host is "reliable" for an app version
    - whether host is eligible for single replication for an app version
    - whether to use host scaling
    In each case, the answer is yes if the number of
    consecutive valid results is above a threshold.
    This replaces existing "error rate" and "scale probation" mechanisms.

    TODO: the # of consecutive valid results should also determine
        a limit on jobs in progress for an app version.
        Namely, if N is the threshold for host scaling, the limit should be
            ndevices*(max(1, consecutive_valid - N))
        The client currently doesn't supply enough
        app version info to do this.
        It could be approximated; that would give some protection
        against cherry-picking.
- credit: more conservative formulas for combining claimed credit
    among replicas.
    If there are normal replicas, we use a "low average"
    that weights each sample by the sum of the other samples.
    Otherwise we use the min (not the average) of the approximate samples.

NOTE: a DB update is required


svn path=/trunk/boinc/; revision=21230
2010-04-21 19:33:20 +00:00
David Anderson 1d765245ed - scheduler: sweeping changes to the way job runtimes are estimated:
see http://boinc.berkeley.edu/trac/wiki/RuntimeEstimation


svn path=/trunk/boinc/; revision=21153
2010-04-08 23:14:47 +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 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 8b701fc73f - scheduler: fix messed-up deadline check logic.
Old:
        1) check deadline based on wu.delay_bound
        2) in add_result_to_reply(), potentially modify wu.delay_bound,
            e.g. because of retry acceleration
        problem: reducing delay bound may cause deadline miss
    New:
        1) new function get_delay_bound_range()
            (called from wu_is_infeasible_fast())
            returns optimistic and pessimistic delay bounds.
            Retry acceleration logic is here.
        2) check deadline based on optimistic bound;
            if that fails, check based on pessimistic bound.
            Set wu.delay_bound to the one that worked.
    Notes:
    - get_delay_bound_range() needs result priority and report deadline,
        and it's called before we read the full result.
        So add these items to WORK_ITEM and WU_RESULT.
    - get_delay_bound_range() could be customized for
        project-specific deadline policy.
    - add_result_to_reply() was becoming a toxic waste dump.
        Deadline-related stuff should have been factored out in any case.

svn path=/trunk/boinc/; revision=18946
2009-08-31 19:35:46 +00:00
Eric J. Korpela 4e60ef3003 - STILL WORK TO BE DONE TO GET locale STUFF INSTALLED PROPERLY!!!
- Update to libtool 1.5.24
- build environment:  Major automake changes that I've been warning about
  for some time.
- Now uses libtool to build libraries.
- Builds separate boinc_fcgi and sched_fcgi libraries for use with 
  FCGI server components.
- New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on
  a library only if --with-libname[=DIR] is specified on the configure
  command line.  This is to allow inclusion of libraries when the 
  ssl, gtk, wxWidgets, or other configuration is incorrect for static
  libraries.
- Added a lot of "--with-*" for some libraries that might be required for
  static builds.
- The sea directory has been moved to packages/generic.  Changes to sea
  and the associated scripts might be required to better make use of the
  staging mechanism and shared libraries.
- Fixed includes of boinc_fcgi.h in many files.
- Fixed places where FCGI_FILE needs to be used implicitly.
- Fixed missing define of _SC_PAGESIZE on hosts that define only
  _SC_PAGE_SIZE.
- Moved build of boinc_cmd (and source file) from lib to client



svn path=/trunk/boinc/; revision=16904
2009-01-13 23:06:02 +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
David Anderson 05f703559f - scheduler: add preliminary support for "job size matching"
(attempt to send big jobs to fast hosts, small jobs to slow hosts).
    - have "census" compute mean/stdev of host speeds,
        write it to a file perf_info.txt
    - have feeder compute mean/stdev of sizes of jobs in shmem
    - have feeder read perf_info.txt into shmem
- scheduler: add some debugging messages for app version selection
- Add LGPL license to a few files
- upgrade/setup scripts: copy census to bin/


svn path=/trunk/boinc/; revision=15136
2008-05-06 19:53:49 +00:00
David Anderson 815b8fc043 Various preparation for handling multithreaded apps
and apps that use coprocessors.
There now can be several app_versions for the same
(app, platform, version_num) combination.
This changes a number of things.

- Added app_version.plan_class field to DB
- update_versions now looks for a :plan-class in the
    file or directory name, and puts it in the app_version's DB record
- Change uniqueness constraint to include plan_class
- Feeder: the feeder was putting non-deprecated app_versions
    in shared mem, and leaving it to the scheduler to
    find the latest version for a given platform.
    This is dumb.
    Instead, for each app/platform pair the feeder now
    finds the highest version number of a non-deprecated app version,
    and enumerates all non-deprecated app_versions with that
    app/platform/version
- Scheduler: add a BEST_APP_VERSION data structure that keeps track,
    for each app, what the best app_version is for this host.
    This saves the work of recomputing it for each job.

svn path=/trunk/boinc/; revision=14906
2008-03-13 22:57:24 +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
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 26a1c63b20 - feeder: add debugging feature:
if you send it a USR1 signal, it writes a summary
    of the shmem contents and HR state to the log file

svn path=/trunk/boinc/; revision=13107
2007-07-05 23:06:18 +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 7ecdc2f44e - Scheduler: in reply, add <platform> element to each <app_version,
and add <platform> and <version_num> elements to <result>
        (server half of multi-version changes)
    - scheduler: make ssp a global; could eliminate from args everywhere

    db/
        boinc_db.h
    sched/
        feeder.C
        main.C,h
        sched_send.C
        sched_shmem.C,h
        server_types.C

svn path=/trunk/boinc/; revision=12535
2007-05-02 23:14:00 +00:00
David Anderson 75a2b2c55b *** empty log message ***
svn path=/trunk/boinc/; revision=12322
2007-04-05 17:02:01 +00:00
David Anderson b9b5d0ed48 *** empty log message ***
svn path=/trunk/boinc/; revision=10622
2006-07-11 21:49:20 +00:00
David Anderson 2e7b35b9ec feeder/scheduler enhancements
svn path=/trunk/boinc/; revision=10083
2006-05-02 22:17:09 +00:00
David Anderson f9b7413d58 feeder/DB fixes
svn path=/trunk/boinc/; revision=9269
2006-01-19 21:46:25 +00:00
David Anderson 709ef2675c *** empty log message ***
svn path=/trunk/boinc/; revision=5911
2005-04-21 05:48:00 +00:00
David Anderson 8d0ab453b3 *** empty log message ***
svn path=/trunk/boinc/; revision=5443
2005-02-16 23:17:43 +00:00
David Anderson 435f8edd47 *** empty log message ***
svn path=/trunk/boinc/; revision=5161
2005-01-20 23:22:22 +00:00
David Anderson e6cdca41e0 *** empty log message ***
svn path=/trunk/boinc/; revision=4237
2004-09-24 20:17:52 +00:00
David Anderson 9a1c7c572d *** empty log message ***
svn path=/trunk/boinc/; revision=4144
2004-09-02 17:14:03 +00:00
David Anderson c1b1b1435e *** empty log message ***
svn path=/trunk/boinc/; revision=4131
2004-08-31 23:08:28 +00:00
Rom Walton 4234715811 *** empty log message ***
svn path=/trunk/boinc/; revision=4125
2004-08-30 02:34:21 +00:00
Rom Walton cefa6c1dad *** empty log message ***
svn path=/trunk/boinc/; revision=4124
2004-08-30 01:50:03 +00:00
David Anderson 3c21c3c748 *** empty log message ***
svn path=/trunk/boinc/; revision=4091
2004-08-21 19:03:12 +00:00
David Anderson 29d50db100 checkin changes
svn path=/trunk/boinc/; revision=3948
2004-07-24 00:09:28 +00:00
David Anderson 6b39b0f3d1 *** empty log message ***
svn path=/trunk/boinc/; revision=3782
2004-07-04 18:55:31 +00:00
David Anderson fe9912a0f3 *** empty log message ***
svn path=/trunk/boinc/; revision=3655
2004-06-17 23:23:13 +00:00
David Anderson 3916d481d7 *** empty log message ***
svn path=/trunk/boinc/; revision=3387
2004-05-17 17:24:14 +00:00
David Anderson d2f8addc5a *** empty log message ***
svn path=/trunk/boinc/; revision=3377
2004-05-13 18:18:22 +00:00
David Anderson d240b170b1 *** empty log message ***
svn path=/trunk/boinc/; revision=3215
2004-04-04 01:59:47 +00:00
David Anderson 94a7332fb6 *** empty log message ***
svn path=/trunk/boinc/; revision=2968
2004-02-05 21:35:48 +00:00
David Anderson cc7ff62644 *** empty log message ***
svn path=/trunk/boinc/; revision=2859
2004-01-09 00:51:47 +00:00
David Anderson 1938fc43ee flush couldnt_send results
svn path=/trunk/boinc/; revision=2343
2003-09-21 21:00:25 +00:00
Karl Chen 741a06d6cd *** empty log message ***
svn path=/trunk/boinc/; revision=1954
2003-08-01 23:40:16 +00:00
David Anderson 537b48cc13 license change
svn path=/trunk/boinc/; revision=1405
2003-06-11 23:36:48 +00:00
David Anderson dc21c52bdf rename db.h
svn path=/trunk/boinc/; revision=1137
2003-04-07 19:06:00 +00:00
David Anderson 431ba7d081 add validation to standard test
svn path=/trunk/boinc/; revision=680
2002-12-03 18:57:40 +00:00
Barry Luong 558dd209ac Database name changes, BOINC_KEY from env variable, BOINC_UPLOAD_URL from env variable, make install copies cgi files into home directory
svn path=/trunk/boinc/; revision=179
2002-07-11 20:41:24 +00:00