Commit Graph

80 Commits

Author SHA1 Message Date
David Anderson 1c119cb037 *** empty log message ***
svn path=/trunk/boinc/; revision=5889
2005-04-18 18:42:29 +00:00
David Anderson 647c8122b3 *** empty log message ***
svn path=/trunk/boinc/; revision=5886
2005-04-18 17:54:03 +00:00
David Anderson 34bd6778d6 *** empty log message ***
svn path=/trunk/boinc/; revision=5841
2005-04-12 22:53:35 +00:00
Bruce Allen b2ec895c7a In reviewing CVS diffs, I see that I stepped on a change. This fixes it.
svn path=/trunk/boinc/; revision=5690
2005-03-19 18:40:11 +00:00
Bruce Allen 58f5b86288 - Overdue checkins on a bunch of minor scheduler code. Some that is
E@H specific is now included (but protected by
      #ifdef EINSTEIN_AT_HOME
      to make it simpler for me to maintain consistency with BOINC cvs.
    - Added project-specific unacceptable_os() function for rejecting hosts.
    - Transitioner and scheduler now initalize host.max_results_day correctly
      in database under all circumstances.
    - Browser requests are now correctly identifed (REQUEST_METHO=="GET") and
      properly redirected.  This was broken. David, please see comment near
      one of the probable_user_browser=true in handle_request.C.  I think
      something is wrong here (or I am missing the point!).
    - More info about requests is logged
    - If the scheduler hangs (incoming request incomplete) it will normally be
      killed by Apache after a timeout.  But this happens silently.  So I now
      install a signal handler and catch this SIGTERM.  In this case an
      error message is logged and all open files are flushed before exit(1)ing.
    - If IO is passed through files, check that request length and content length
      agree and log a message if they do NOT.
    - active_frac not correctly reported by 4.19 and earlier core clients.
      Adjust for this in estimating wallclock execution times.
    - Added a small block into validator code to attach a debugger.

svn path=/trunk/boinc/; revision=5688
2005-03-19 18:24:24 +00:00
David Anderson 46b0941447 *** empty log message ***
svn path=/trunk/boinc/; revision=5650
2005-03-13 20:10:03 +00:00
David Anderson b152c3f453 *** empty log message ***
svn path=/trunk/boinc/; revision=5530
2005-02-26 00:24:37 +00:00
David Anderson d309b4d3e7 *** empty log message ***
svn path=/trunk/boinc/; revision=5503
2005-02-23 06:19:20 +00:00
Bruce Allen 0f6202fc9e When daily result quota exceeded, tell users what its value is for that host.
svn path=/trunk/boinc/; revision=5493
2005-02-22 17:53:17 +00:00
Bruce Allen b3f75a8aee - Bug fixes to scheduler code
- For locality scheduler, if anonymous platform lacks app, don't do deterministic
      search for work!
    - For locality scheduler, remove 'unsent' constraint from initial query so that
      existing index in result table can be used to perform a more efficient search.
    - Send multi-message replies to core clients > 4.19
    - Change 'no work available' message to 'no work sent' since this is often due
      to constraints at the client end, NOT lack of work at project end.

svn path=/trunk/boinc/; revision=5492
2005-02-22 17:37:03 +00:00
Bruce Allen e35fe95365 Oops, style
svn path=/trunk/boinc/; revision=5468
2005-02-17 22:04:10 +00:00
Bruce Allen e5cc67c06d make daily_result_quota be PER CPU with a hardwired limit of
4 CPUS.
Improved error messages if users are being denied work because of
      lack of CPU.  The message reports back their on fraction, active
      fraction, and resouce share fraction, as percentages.

svn path=/trunk/boinc/; revision=5466
2005-02-17 21:58:40 +00:00
David Anderson 8d0ab453b3 *** empty log message ***
svn path=/trunk/boinc/; revision=5443
2005-02-16 23:17:43 +00:00
Bruce Allen 52d0c274c1 More sensible use of request_delay. If a host contacts the
scheduler, and fails to get work because there are N secs
      of pending work, then send a delay request of min(3600, N/5) secs.
      Otherwise the same host was coming back every hour, without being able
      to get additional work.
Implemented by adding a method set_delay() to
      SCHEDULER_REQUEST. This sets the delay to the maximum of the
      previous requested delay or the current requested delay. The
      delay is NEVER set longer than two days.

svn path=/trunk/boinc/; revision=5437
2005-02-16 01:14:12 +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
David Anderson c825780c5a *** empty log message ***
svn path=/trunk/boinc/; revision=5426
2005-02-14 20:11:01 +00:00
David Anderson 0ddf2ed101 *** empty log message ***
svn path=/trunk/boinc/; revision=5423
2005-02-14 04:39:07 +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
Eric J. Korpela c05d6d23a0 Because FCGI doesn't support fscanf() and fgetc(), the FILE pointers need to be
wrapped in a call to FCGI_ToFILE().  In the case where FCGI isn't being used
FCGI_ToFILE(x) is defined to (x).

svn path=/trunk/boinc/; revision=5387
2005-02-10 19:39:37 +00:00
Bruce Allen 0bc36dd60d Remove left over debug scaffolding; need to check ENTIRE filename
not merely part of it! Always good to review the CVS diffs after
a commit...

svn path=/trunk/boinc/; revision=5383
2005-02-10 06:31:33 +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 36ed6019c2 *** empty log message ***
svn path=/trunk/boinc/; revision=5380
2005-02-09 23:49:46 +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
Bruce Allen 3b99622e22 Well, the comment was worth keeping...
svn path=/trunk/boinc/; revision=5358
2005-02-08 07:07:19 +00:00
Bruce Allen d0098e38f3 Bug fix: method of determining which download site to point a host to
computing timezone differences, not taking into account the fact that
UTC+11 hours and UTC-11 hours are only 2 hours apart.  Duh.

svn path=/trunk/boinc/; revision=5357
2005-02-08 06:39:06 +00:00
David Anderson b961c2ce3d *** empty log message ***
svn path=/trunk/boinc/; revision=5349
2005-02-08 00:39:05 +00:00
David Anderson 694ae2973e *** empty log message ***
svn path=/trunk/boinc/; revision=5341
2005-02-07 06:24:14 +00:00
David Anderson daa7c4559d *** empty log message ***
svn path=/trunk/boinc/; revision=5335
2005-02-06 21:26:21 +00:00
David Anderson 981799643c *** empty log message ***
svn path=/trunk/boinc/; revision=5284
2005-02-02 22:58:46 +00:00
Bruce Allen e5058d872f Correct typo in warning message, and improve comment
svn path=/trunk/boinc/; revision=5276
2005-02-02 19:31:40 +00:00
Bruce Allen a27705fd59 Improvements to the file deletion mechanism. Now try removing files if
no work was sent to hosts, and available space<0 OR if available space>0
      but work was unfeasible because the disk bound requirements of the work
      exceeded the available space.
Added a new config.xml boolean element called 'choose_download_url_by_timezone'
      This requires that projects provide a 2-column file in the project root named
      'download_servers'.  An example is:
           3600   http://einstein.aei.mpg.de
         -21600   http://einstein.phys.uwm.edu
      The first column is offset from UTC in seconds, and the second column is the URL
      of the download server.  When enabled, the scheduler will replace the download
      path for data and executables by a list of download URLs, ordered by proximity
      to the host's timezone.  The download path must start with the
      BOINC default download/ and the different download servers must have identical
      file paths under download/, in other words they must be mirrored.

svn path=/trunk/boinc/; revision=5275
2005-02-02 18:13:00 +00:00
David Anderson 4a0fb78aa6 *** empty log message ***
svn path=/trunk/boinc/; revision=5258
2005-01-31 23:20:49 +00:00
David Anderson 896d0b8a46 *** empty log message ***
svn path=/trunk/boinc/; revision=5257
2005-01-31 22:19:03 +00:00
Bruce Allen 8b6402cf21 More of the same, for reviewing by David
svn path=/trunk/boinc/; revision=5251
2005-01-31 19:34:43 +00:00
David Anderson 435f8edd47 *** empty log message ***
svn path=/trunk/boinc/; revision=5161
2005-01-20 23:22:22 +00:00
Bruce Allen f31b244f90 Modified CVS id strings. After some fussing with different versions
of gcc to try and force them to not complain with -Wall but to always
include this, I decided to take a simpler approach.  All these strings
now have global linkage.  To prevent namespace conflicts they all
have different names.  For the record, the variable extension is a hash made of the first ten characters of the md5sum of the file path, eg:
    md5hash=`boinc/api/x_opengl.C | md5sum | cut -c 1-10`

svn path=/trunk/boinc/; revision=4979
2005-01-02 18:29:53 +00:00
David Anderson 177b530d0b *** empty log message ***
svn path=/trunk/boinc/; revision=4951
2004-12-28 03:39:52 +00:00
David Anderson f1d1077c17 *** empty log message ***
svn path=/trunk/boinc/; revision=4868
2004-12-16 22:10:51 +00:00
Bruce Allen a24afe2b67 Moved RCSID strings to the end of all .c, .C and .cpp files as per
David's request.

svn path=/trunk/boinc/; revision=4787
2004-12-08 00:40:19 +00:00
David Anderson 2c5f1d1a5b *** empty log message ***
svn path=/trunk/boinc/; revision=4772
2004-12-06 22:41:19 +00:00
David Anderson 02b6393a11 *** empty log message ***
svn path=/trunk/boinc/; revision=4764
2004-12-05 23:52:17 +00:00
Bruce Allen 45525eade1 - Added static volatile const char *BOINCrcsid="$Id$"; string to
the top of all .C files.  This means that 'string' or 'ident'
run on an executable will tell you the exact file versions used
in building it, since CVS replaces $Id$ with a complete version ID
string.  Declaration is volatile so that the compiler won't remove
it even under agressive optimizations.

svn path=/trunk/boinc/; revision=4610
2004-11-20 07:32:32 +00:00
David Anderson 37adf79297 *** empty log message ***
svn path=/trunk/boinc/; revision=4328
2004-10-14 22:01:05 +00:00
David Anderson 4fd244d5d8 *** empty log message ***
svn path=/trunk/boinc/; revision=4249
2004-09-27 04:26:51 +00:00
David Anderson 83a77b784f *** empty log message ***
svn path=/trunk/boinc/; revision=4217
2004-09-21 19:58:30 +00:00
David Anderson e01aa9de45 *** empty log message ***
svn path=/trunk/boinc/; revision=4182
2004-09-10 21:02:11 +00:00
David Anderson 76a5940333 *** empty log message ***
svn path=/trunk/boinc/; revision=4178
2004-09-10 00:41:48 +00:00
David Anderson c1b1b1435e *** empty log message ***
svn path=/trunk/boinc/; revision=4131
2004-08-31 23:08:28 +00:00