Commit Graph

1555 Commits

Author SHA1 Message Date
David Anderson 3452a0e422 - scheduler: show message whether miss or meet deadline
svn path=/trunk/boinc/; revision=17088
2009-01-30 22:30:35 +00:00
David Anderson b7a2c227ca - Work fetch / scheduler:
There are two mechanisms to prevent the scheduler from
    sending jobs that won't finish by their deadline.
    Simple mechanism:
        The client sends the interval x for which CPUs are projected
        to be saturated.
        Given a job with estimated duration y,
        the scheduler doesn't send it if x + y exceeds the delay bound.
        If it does send it, x is incremented by y.
    Complex mechanism:
        Client sends workload description.
        Scheduler does EDF simulation, sees if deadlines are missed.
        The only project using this AFAIK is BOINC alpha test.
    Neither of these mechanisms takes coprocessors into account,
    and as a result jobs could be sent that are doomed to
    miss their deadline.
    This checkin adds coprocessor awareness to the Simple mechanism.

    Changes:
    Client:
        compute estimated delay (i.e. time until non-saturation)
        for coprocessors as well as CPU.
        Send them in scheduler request as part of coproc descriptor.
    Scheduler:
        Keep track of estimated delays separately for different resources
- client: fixed bug that computed CPU estimated delay incorrectly
- client: the work request (req_secs) for a resource is the min
    of the project's share and the shortfall.

svn path=/trunk/boinc/; revision=17086
2009-01-30 21:25:24 +00:00
David Anderson 592bf5c17b - scheduler: get effective RAM sizes and running fraction just once
svn path=/trunk/boinc/; revision=17072
2009-01-29 20:42:45 +00:00
David Anderson 195c0403b7 - scheduler: don't count host as reliable if avg_turnaround is zero
- client: restore notion of overworked;
    if a project is overworked for a resource R,
    don't fetch work for R unless there are idle instances

svn path=/trunk/boinc/; revision=17057
2009-01-28 04:58:01 +00:00
David Anderson dfa1996975 - scheduler: in get_app_version(), if we previously sent a CUDA app,
but we don't need to send any more CUDA jobs,
    delete the BEST_APP_VERSION record and look for another app version.
    This lets the scheduler send both CUDA and CPU app versions
    for a given app in a single RPC.


svn path=/trunk/boinc/; revision=17051
2009-01-27 21:18:06 +00:00
David Anderson d23d481c63 - client: change the LTD policy so that
1) net adjustment for eligible projects is zero;
    2) max LTD is zero
- scheduler: fix msgs so disk size is shown in GB

svn path=/trunk/boinc/; revision=17031
2009-01-27 18:57:27 +00:00
David Anderson 574d1fe087 - client: don't request work for a resource if it has no shortfall.
- client and server: get rid of coproc_cuda global.

svn path=/trunk/boinc/; revision=17019
2009-01-26 05:00:49 +00:00
David Anderson db8f15e396 - scheduler: if anonymous platform, ignore coprocessor requests
(since anonymous platforms apps are treated as CPU)

svn path=/trunk/boinc/; revision=17011
2009-01-24 21:51:19 +00:00
David Anderson 8a801a2df7 - scheduler: initialize global
svn path=/trunk/boinc/; revision=17008
2009-01-24 03:57:50 +00:00
David Anderson 44571ef4bd - scheduler: if client can't do plan class, don't complain about old client
svn path=/trunk/boinc/; revision=17005
2009-01-23 23:32:52 +00:00
David Anderson 08ab3c630f - scheduler: make NCI app versions preferable to non-plan-class
svn path=/trunk/boinc/; revision=17004
2009-01-23 23:04:33 +00:00
David Anderson 4cd3c530b0 - scheduler: reduce frequency of calls to work_needed()
svn path=/trunk/boinc/; revision=17003
2009-01-23 22:52:35 +00:00
David Anderson fc8c9c7ce4 - sched: remove spurious error msg when using NCI class
svn path=/trunk/boinc/; revision=17000
2009-01-23 19:36:17 +00:00
David Anderson 547d9f4b3a - scheduler: for plan class "nci", set flops to CPU speed;
this will give consistent completion time estimates for existing WUs.

svn path=/trunk/boinc/; revision=16999
2009-01-23 18:46:57 +00:00
David Anderson 57518b9a43 - client: when preempting a process, remove it from memory if:
1) it uses a coprocessor
    2) it has checkpointed since the client started
    3) it's being preempted because of a user action
        (suspend job, project, or all processing)
        or user preference (time of day, computer in use)
- scheduler: if shared mem seg doesn't exist,
    report it and don't crash

svn path=/trunk/boinc/; revision=16992
2009-01-23 00:02:39 +00:00
David Anderson 268b694932 - client: if an app has avg_ncpus < 1, run it at above-idle priority
even if it doesn't use a coprocessor.
- scheduler: added an "nci" (non CPU intensive) plan class
    to sched_plan.cpp.  It declares the use of 1% of a CPU.

The above two changes are intended to allow the QCN app to
run at above_idle priority, which it needs in order to do 500Hz polling.

- API: the std::string version of boinc_resolve_filename()
    acts the same as the char[] version.

svn path=/trunk/boinc/; revision=16985
2009-01-22 19:51:04 +00:00
David Anderson 350f62223f - scheduler: accept CUDA version 1.0
svn path=/trunk/boinc/; revision=16968
2009-01-21 17:36:26 +00:00
David Anderson 50405c89e3 - scheduler: improve no-work messages
- web: don't use DB conn in mysql_real_escape_string()
    (otherwise won't work if DB is down)

svn path=/trunk/boinc/; revision=16961
2009-01-20 21:31:13 +00:00
David Anderson 85a8e6a772 - scheduler: remove the config flag <have_cuda_apps>,
and add <cuda_multiplier>.
    The latter is used in calculating max jobs/day for a host;
    namely, it's host.max_results_day * (NCPUS + NCUDA*cuda_multiplier).
    Set it to 10 or so if you have CUDA apps.
- scheduler: don't overload effective_ncpus();
    instead, add two new functions,
    max_results_day_multiplier() and max_wus_in_progress_multiplier()
- scheduler: don't reduce max_results_day if we get an aborted job
    (it might have been aborted by the project;
    not appopriate to punish host in this case)

svn path=/trunk/boinc/; revision=16959
2009-01-20 00:54:16 +00:00
David Anderson 217e4e6836 - scheduler: remove clause in app_plan() that withholds jobs from slow GPUs.
The SETI@home/CUDA app has been fixed so that it works on all GPUs.

svn path=/trunk/boinc/; revision=16927
2009-01-15 23:44:58 +00:00
David Anderson 91e120b3f4 - scheduler: improve message formatting; add <debug_locality> flag
for locality scheduling messages

svn path=/trunk/boinc/; revision=16921
2009-01-15 20:23:20 +00:00
David Anderson c10890f0fc - compile fixes
svn path=/trunk/boinc/; revision=16906
2009-01-13 23:35:49 +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 fbbdabcb1b svn path=/trunk/boinc/; revision=16895 2009-01-13 01:02:30 +00:00
David Anderson 1680b0e11a - scheduler: bug fixes
svn path=/trunk/boinc/; revision=16894
2009-01-13 00:56:12 +00:00
David Anderson 377545a056 - scheduler: if we're not sending work because of the user's "no GPUs" pref,
tell them so.
- scheduler: fix bug that caused no CUDA jobs to be sent

svn path=/trunk/boinc/; revision=16893
2009-01-12 23:47:52 +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 b5a33323d2 - scheduler: if a Windows host has a GPU slower than 60 GFLOPS,
don't send it CUDA jobs (they may cause BSOD);
    send user a message to this effect

svn path=/trunk/boinc/; revision=16881
2009-01-12 05:28:36 +00:00
David Anderson a9050243d6 - scheduler: add support for resource-specific scheduler requests:
- parse new request message elements
        (CPU and coproc requested seconds and instances)
    - decide how many jobs to send based on these params
    - select app version based on these params
        (may send both CPU and CUDA app versions for the same app!)

svn path=/trunk/boinc/; revision=16861
2009-01-10 00:43:33 +00:00
David Anderson 8c591e31df - client: first whack at new work-fetch logic. Very preliminary.
svn path=/trunk/boinc/; revision=16754
2008-12-31 23:07:59 +00:00
David Anderson 2dc7056ee0 - client: code shuffling
- scheduler: fix typo in msg

svn path=/trunk/boinc/; revision=16750
2008-12-30 19:01:25 +00:00
David Anderson e3216b204b - scheduler: move EDF sim code into check_deadline(), so that the
exceptional cases (e.g., send at least one job to a host with no work)
    apply whether using EDF or basic check
- client: don't accept 0 for active/on/connected frac; set to 1

svn path=/trunk/boinc/; revision=16744
2008-12-26 22:56:42 +00:00
David Anderson fae0903c0f - scheduler: store CUDA total memory as a double,
since it can be 4GB or larger


svn path=/trunk/boinc/; revision=16737
2008-12-22 22:12:57 +00:00
David Anderson 30e6bd3612 - scheduler: change default CUDA RAM requirement from 256MB to 254MB;
apparently some NVIDIA cards report 255MB


svn path=/trunk/boinc/; revision=16736
2008-12-22 20:01:30 +00:00
David Anderson 9c4ae51cc1 - scheduler: if no jobs available to send, inform the user
svn path=/trunk/boinc/; revision=16732
2008-12-22 03:39:50 +00:00
David Anderson 2d40b45baa svn path=/trunk/boinc/; revision=16731 2008-12-22 00:19:20 +00:00
David Anderson 74423f23b6 - scheduler: if no jobs available to send, inform the user
svn path=/trunk/boinc/; revision=16730
2008-12-22 00:10:02 +00:00
David Anderson c0642fd5c2 - scheduler: fix message that showed running_frac as garbage;
show FLOPS as GFLOPS


svn path=/trunk/boinc/; revision=16729
2008-12-19 21:27:02 +00:00
David Anderson e6c6fbed07 - client: error checking for on/connected/active_frac values from XML
svn path=/trunk/boinc/; revision=16728
2008-12-19 20:55:49 +00:00
David Anderson 312ffba708 - API: remove BOINC_OPTIONS::worker_thread_stack_size
- web: check whether to show profile in separate function
    from displaying profile; eliminate double headers
- scheduler: finish purge of redundant arguments

svn path=/trunk/boinc/; revision=16726
2008-12-19 18:14:02 +00:00
David Anderson 5495ec64df - web/scheduler: add a project-specific preferences for
whether to accept GPU jobs

svn path=/trunk/boinc/; revision=16723
2008-12-18 21:25:51 +00:00
David Anderson 58cdf84551 - scheduler: in estimating job duration,
clamp running fraction to [.1, 1] and clamp DCF to [.1, 100]

svn path=/trunk/boinc/; revision=16722
2008-12-18 18:19:42 +00:00
David Anderson 765eefd18d svn path=/trunk/boinc/; revision=16715 2008-12-17 22:05:20 +00:00
David Anderson 90740c7690 - feeder: include all app versions that have maximal version num
within their plan class

svn path=/trunk/boinc/; revision=16714
2008-12-17 21:58:54 +00:00
David Anderson 8c965f2625 - scheduler: add some debugging msgs
svn path=/trunk/boinc/; revision=16711
2008-12-17 20:53:46 +00:00
David Anderson 4a65681176 - scheduler: if client has coprocs,
put a textual summary of them in host.serialnum (currently unused)
- web: show coprocs on host detail page
- db_dump: include coproc info in host XML

svn path=/trunk/boinc/; revision=16697
2008-12-16 18:46:28 +00:00
David Anderson ef52366c1b - web: fix bug that caused login to fail
- sched: more global vars

svn path=/trunk/boinc/; revision=16695
2008-12-16 16:29:54 +00:00
David Anderson 41498a6840 - scheduler: fix typo; enforce 256MB CUDA memory limit
svn path=/trunk/boinc/; revision=16693
2008-12-15 23:35:40 +00:00
David Anderson ef3c9c7444 - scheduler: add --help option
svn path=/trunk/boinc/; revision=16692
2008-12-15 22:56:08 +00:00
David Anderson 49a69de194 - scheduler: estimate job durations based on the FLOPS estimate
for the selected APP_VERSION, rather than on the CPU benchmarks.
    Otherwise estimates are wrong for GPU or multi-thread apps.
- scheduler: start switching from having SCHED_REQUEST and
    SCHED_REPLY as globals instead of passing them around as args;
    to be continued.

svn path=/trunk/boinc/; revision=16691
2008-12-15 21:14:32 +00:00