Commit Graph

88 Commits

Author SHA1 Message Date
David Anderson 4e1f0b7019 - client: add a <data_dir> option in cc_config.xml;
tells the client to use this as the data directory
- scheduler: improve the message telling the client that
    more disk or memory is needed;
    tell them the minimum amount needed to
    send any of the jobs rejected,
    rather than the amount needed for the first job rejected
- manager: fix text in "connect now" dialog

svn path=/trunk/boinc/; revision=13387
2007-08-16 17:33:41 +00:00
David Anderson 797c464b3a - Back end: add a feature for "blackballing" hosts.
To do this, set host.max_results_day to -1.
    If you do this, scheduler requests from that host
    will get an error message, and will otherwise be ignored
    (no jobs in or out, no trickles).
- Scheduler: send_message() should be called ONLY if you're
    not going to call handle_request();
    otherwise we'll write two separate replies.
    To fix this, I added a separate function (send_error_message())
    that can be called within handle_request()
    to deal with error situations.
- Scheduler: moved debug_sched() to main.C
- Scheduler: moved logic to send "delete file" commands
    out of handle_request() into a separate function,
    send_file_deletes() in sched_locality.C.
    Remove #ifdef EINSTEIN_AT_HOMEs; maybe someday another project
    will use locality scheduling!

svn path=/trunk/boinc/; revision=13108
2007-07-06 16:37:00 +00:00
Bruce Allen a5854e5485 fix typo in comment and docs
svn path=/trunk/boinc/; revision=13089
2007-07-03 21:35:59 +00:00
Bruce Allen 204a88ceda An E@H specific hack
If deleting a file with name matching pattern h1_XXXX.XX_S5R2
generate corresponding l1_h1_XXXX.XX_S5R2 pattern and delete it also

This is needed because E@H is doing file locality scheduling with
PAIRS h1_... and l1_... of files. Yuk.


svn path=/trunk/boinc/; revision=13087
2007-07-03 20:45:13 +00:00
David Anderson 2fa5db2775 - scheduler: move HR check to wu_is_infeasible()
In principle, a project can now use both
    locality scheduling and homogeneous redundancy.
- scheduler: do HR check before deadline check,
    since the latter is slower.
- scheduler: wu_is_infeasible() doesn't return a bitmap.
    Change its return values to sequential numbers.
- scheduler: ignore <accelerator> and <p_capabilities> tags

sched/
    sched_send.C,h
    sched_array.C
    sched_locality.C
    server_types.C

svn path=/trunk/boinc/; revision=12791
2007-05-31 18:14:45 +00:00
David Anderson 2e7b82b631 - scheduler: added (correct this time!) support for
<alt_platform> tags in scheduler requests.
    - file_deleter: add check for -dont_delete_batches 

    sched/
        file_deleter.C
        handle_request.C
        sched_array.C,h
        sched_locality.C,h
        sched_resend.C,h
        sched_send.C,h
        server_types.h

svn path=/trunk/boinc/; revision=12512
2007-04-30 21:19:24 +00:00
Bruce Allen 8ce18a7b4a Minor sched locality changes for E@H
svn path=/trunk/boinc/; revision=12446
2007-04-23 12:27:35 +00:00
David Anderson 66071c9de1 svn path=/trunk/boinc/; revision=12373 2007-04-16 22:22:15 +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 81effa6a7b *** empty log message ***
svn path=/trunk/boinc/; revision=12127
2007-02-21 16:26:51 +00:00
David Anderson 7767ca1eb8 *** empty log message ***
svn path=/trunk/boinc/; revision=11492
2006-11-07 17:40:55 +00:00
David Anderson 60e224aa18 *** empty log message ***
svn path=/trunk/boinc/; revision=11472
2006-11-05 00:15:10 +00:00
David Anderson c98a2415af *** empty log message ***
svn path=/trunk/boinc/; revision=11336
2006-10-22 00:42:44 +00:00
Bruce Allen 5c5f76a8a4 scheduler: improved message to client for clarity
svn path=/trunk/boinc/; revision=10923
2006-08-15 19:21:45 +00:00
Bruce Allen 0e182804bb Scheduler: populate sreq.host.credit_per_cpu_sec in case project wants
to send different work to slow and fast hosts.  I'm experimenting with
the use of this in the locality scheduler.

svn path=/trunk/boinc/; revision=10390
2006-06-17 17:26:07 +00:00
Bruce Allen fdad366b2e Scheduler: improve message to user if user running anonymous platform
and project+app does not support it.

svn path=/trunk/boinc/; revision=10386
2006-06-17 14:16:55 +00:00
Bruce Allen 231934fafd Einstein@Home-specific change.
svn path=/trunk/boinc/; revision=10346
2006-06-14 18:36:20 +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
Bruce Allen 29c352a869 Einstein@Home specific changes
svn path=/trunk/boinc/; revision=10192
2006-05-24 19:00:12 +00:00
Bruce Allen c7188847f1 Clearer logging by scheduler
svn path=/trunk/boinc/; revision=9679
2006-03-17 18:17:47 +00:00
Bruce Allen bcbdaa5082 Einstein@Home specific change
svn path=/trunk/boinc/; revision=9248
2006-01-16 18:49:08 +00:00
Bruce Allen d88ebe9294 Einstein@Home specific code, to tell users to remove app_info.xml file.
svn path=/trunk/boinc/; revision=9194
2006-01-07 18:13:48 +00:00
Bruce Allen d4088bb1b6 Einstein@Home - specific modification.
svn path=/trunk/boinc/; revision=9165
2006-01-03 16:07:14 +00:00
Bruce Allen cc96fd006a Einstein@Home-specific hack to the locality scheduler. For new
WU, I need to separate two types of 'sticky/report on RPC' files.
One type is used for WU names of the form FILE__ and the others
are auxilliary.  David, after I've talked with you I'll either
generalize this notion or we can eliminate it.

svn path=/trunk/boinc/; revision=9131
2005-12-23 04:17:10 +00:00
Eric J. Korpela d9ee426071 Added explicit includes of "config.h" in many files to enable use of compilers
without a -include command line option.

svn path=/trunk/boinc/; revision=8896
2005-11-21 18:34:44 +00:00
David Anderson 941d7e21d8 fix DEBUG symbol collision
svn path=/trunk/boinc/; revision=8189
2005-09-26 23:28:48 +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 8f66bece15 Corrected misleading message to users about free disk space.
svn path=/trunk/boinc/; revision=7212
2005-08-08 20:36:46 +00:00
Bruce Allen 40321131e9 Improved wording of message to users about a file scheduled for
deletion by BOINC.  Some users thought that perhaps action was
needed on their part.

svn path=/trunk/boinc/; revision=7191
2005-08-05 12:55:19 +00:00
David Anderson 3f785e8bdd resend lost results
svn path=/trunk/boinc/; revision=6866
2005-07-28 10:13:30 +00:00
Bruce Allen 03e53d6223 Brought comments into line with what the code actually does.
svn path=/trunk/boinc/; revision=6533
2005-07-06 08:44:44 +00:00
Bruce Allen 285052ce4a locality scheduler: make searches over file names distinguish
lower case and upper case
locality scheduler: when searching for new work using advertised
      files, retry ten times before starting a deterministic search.
      We should probably modify this to try ALL advertised files in
      a random order before moving onto a deterministic search.

svn path=/trunk/boinc/; revision=6482
2005-06-28 20:31:02 +00:00
David Anderson 3a1b32e7d6 *** empty log message ***
svn path=/trunk/boinc/; revision=6466
2005-06-28 05:43:22 +00:00
Bruce Allen 042bfde576 when using locality scheduler, have transitioner or backend
lib advertise data file when new result is created.
code organization: create new lib function boinc_touch_file()
      from code that was in locality scheduler module.

svn path=/trunk/boinc/; revision=6456
2005-06-27 16:31:49 +00:00
David Anderson ece2ec37db *** empty log message ***
svn path=/trunk/boinc/; revision=6182
2005-05-17 21:08:48 +00:00
Bruce Allen 6cb7ecb8c5 bug fix: with locality scheduling, permit multiple requests
to make work for same file. Bug introduced April 11, 2005.

svn path=/trunk/boinc/; revision=6024
2005-05-04 17:17:42 +00:00
Bruce Allen f76184d29e locality scheduling: if host resources are inadequate for ANY WU,
assume that they are inadequate for ALL WU.  Without this we will
execute an expensive deterministic search over all WU, looking
for one that is appropriate.  This could be a config option if
desired, or one might add in an extra search step to find WU with
appropriate resources.  But for now this is the cleanest.

svn path=/trunk/boinc/; revision=5999
2005-05-02 21:14:24 +00:00
Bruce Allen b9d649fbbc Scheduler: with locality scheduling, if we touch a trigger file then
sleep, and then try again, but DON'T find more work available, give up
trying to make work for that file.

svn path=/trunk/boinc/; revision=5836
2005-04-12 01:39:01 +00:00
Bruce Allen 964d34b0e0 Correctly handle case where anonymous platform does NOT have a suitable
app.  Previously the code would do an exhaustive search of every unsent
result.

svn path=/trunk/boinc/; revision=5490
2005-02-22 04:38:09 +00:00
Bruce Allen f27abb4ea9 Break out of deterministic search if no work needed because we have
(for example) violated cpu, disk or mem limits.

svn path=/trunk/boinc/; revision=5488
2005-02-21 22:48:53 +00:00
Bruce Allen bca7853358 Eliminate a constraint from the query in the interest of efficiency. The
alternative is to add another index on (name, server_state) to the
result table.

svn path=/trunk/boinc/; revision=5487
2005-02-21 22:32:38 +00:00
Bruce Allen 73a99d6d17 Fixed a bug in locality scheduling. When old work was being sent,
the daily_result_quota constraint was not being enforced.
Normally this constraint is enforced in the work_needed()
function.  However note that the critical send_work() function
NEVER checks work_needed() [DAVID, perhaps it should?] before
calling send_work_locality() or scan_work_array().  Then, when
send_work_locality() was called, it would in turn call
send_old_work() immediately, WITHOUT checking to see if
work_needed() was TRUE.  This allowed the daily_result_quota
constraint to be broken.

    Possible fixes included:
      test work_needed() before calling send_old_work()
      test work_needed() WITHIN send_old_work()
      test work_needed() within possibly_send_result()
      test work_needed() within wu_is_infeasible()

Conclusion: work is ONLY sent by the function
possibly_send_result() which is called in two places in
sched_locality.C: once in send_results_for_file() and once in
send_old_work().  The first of these DOES check the value of
work_needed().  The second does NOT.  So I added a check of
work_needed() within send_old_work().  A also added
added another check of work_needed() at the top of
send_results_for_file() BEFORE any DB access is done.  It might be
better to put this test of work_needed() lower down (within
possibly_send_result()) or higher up (where send_old_work())
is called.  I am not sure. David, I'd appreciate your advice.

svn path=/trunk/boinc/; revision=5482
2005-02-20 14:19:12 +00:00
David Anderson 8d0ab453b3 *** empty log message ***
svn path=/trunk/boinc/; revision=5443
2005-02-16 23:17:43 +00:00
Bruce Allen e7e9d6d9a6 - Scheduler changes (global):
- Ignore CPU limitations and resource share entirely, IF
      a host:
        (1) has no work for this project
        (2) has no results in this sched reply
      This ensures that any host that wants to do work will at least
      get *something*. It liberalizes slightly David A's approach
      from 14 Feb 2005. Eliminate use_time_stats from wreq structure.
    - Scheduler changes (locality scheduling only):
    - Improve return value info for some functions.
    - Modify send_old_work() to accept a t_min < t < t_max time range
    - New sched locality algorithm to send work to hosts with no files.
      Send oldest result in the time range A < t < B where
      B = locality_scheduling_timeout/2
      A = B - rand*locality_scheduling_timeout/2
      Here rand is a uniformly distributed random number in [0,1].
    - When an unsent result is older than locality_scheduling_timeout, no
      longer send it to the FIRST host that requests work.  Instead send
      it to the first host which has a connection speed > 100kb/s.
    - Fix file deletion.  Previously we were deleting files from hosts
      when they got no work for that file.  But this might have been
      because the work was infeasible (cpu time).  Now delete files
      from host ONLY if there is no work remaining for that file.

svn path=/trunk/boinc/; revision=5434
2005-02-15 21:18:20 +00:00
Bruce Allen b193f36131 Sched locality change: if the host does not have enough memory to satisfy
a work request, do not search for or send further work.  This is the same
      way that disk space limits are handled.  This is necessary since otherwise
      a host with small memory will endlessly trigger the WU generator, churning
      out infeasible WUs.
Added boolean arg to host_has_file() following David A's advice. This
      eliminates the 'expensive' copy of a large data structure. The bool arg
      makes host_has_file() skip the final WU in the vector in hunting for a file.
Better log message for setting coredump size.
Added RCSID tag to sched_timezone.C

svn path=/trunk/boinc/; revision=5397
2005-02-11 04:00:51 +00:00
David Anderson 0aa720e8e1 *** empty log message ***
svn path=/trunk/boinc/; revision=5390
2005-02-10 20:31:11 +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 7df0115850 *** empty log message ***
svn path=/trunk/boinc/; revision=5376
2005-02-09 20:06:15 +00:00
David Anderson d01e0c50ab *** empty log message ***
svn path=/trunk/boinc/; revision=5363
2005-02-08 19:54:10 +00:00
David Anderson 694ae2973e *** empty log message ***
svn path=/trunk/boinc/; revision=5341
2005-02-07 06:24:14 +00:00