Commit Graph

2385 Commits

Author SHA1 Message Date
David Anderson 5b76909f04 scheduler: parse OpenCL/CPU descriptors, and add plan class for OpenCL/CPU/Intel 2013-08-26 23:32:32 -07:00
David Anderson b2e06e0704 Server: various fixes for "make install" 2013-08-24 20:36:49 -07:00
David Anderson f13c3d58ea fix bug in trickle handler framework; from Christian 2013-08-23 13:01:53 -07:00
David Anderson 628ba8f0ef Tweaks to deadline-extension trickle handler, from Christian 2013-08-23 09:45:45 -07:00
David Anderson 95d12b76e7 server: add code for extending deadlines via trickle-ups; from Christian 2013-08-23 00:34:37 -07:00
David Anderson ef82d5d9fb server: fix compile error on systems that don't define MAXPATHLEN 2013-08-22 17:01:45 -07:00
David Anderson 1c31f6feaa Condor: fix bug when 2 input files have same contents; fix error messages 2013-08-09 16:06:36 -07:00
Eric J Korpela 48d995061f Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2013-08-08 11:31:27 -07:00
Eric J Korpela 60c7814250 SCHED: Removed claimed credit sanity check because GPU machines often have host
scales that cause it to fail. That prevents host_app_version PFCs not to be
updated for perfectly reasonable credit claims.  Since there is a max credit
granted this mechanism is unneccesary, anyway.
2013-08-08 11:23:30 -07:00
David Anderson b156e88208 scheduler: sample code for the SSE3 plan class must check for "pni" rather than "sse3"; clients report "pni" 2013-08-08 11:00:29 -07:00
Eric J Korpela 03e64f720b SCHED: Added "intel_gpu" to app_plan_uses_gpu() 2013-06-25 19:31:23 -07:00
Eric J Korpela 4e338e946e -SCHED: Added plan class spec plan class option "<need_amd_libs>" (similar to
"<need_ati_libs>".  Before this the default was to require AMD libraries unless
    need_ati_libs was set.  Now the default is to require neither.  This is
    necessary for MacOS compatibility (where there is no distiction).
   -SCHED: Changed intel gpu type search to match any string in the gpu_type
    beginning with "intel".  This was done because there have been
    inconsistencies in the code where "intel" vs "intel_gpu" is used.
2013-06-25 19:17:46 -07:00
Eric J Korpela 2c226d6ab2 SETI@home: made sending VLAR results to GPUs a run time sah_config.xml option 2013-06-19 14:40:53 -07:00
Eric J Korpela 244ba5bc85 SCHED: modified scheduled log output to use unsigned format for WU and RESULT
ids.  This allows IDs greater than 2^31 to be printed.
2013-06-19 10:15:08 -07:00
Eric J Korpela bd5658a833 Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2013-06-09 19:18:33 -07:00
David Anderson 78f7610f6e remove dependency of boinc_api.h on str_replace.h (and hence config.h)
Any files that use strlcpy() or strlcat() must directly include str_replace.h
2013-06-06 17:31:46 -07:00
Eric J Korpela 679cca5f1f Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2013-06-04 14:01:18 -07:00
Eric J Korpela b718037e79 - SCHED: Added code to reduce the number of times a app_version is sent
to host that has never successfully completed a result with that app_version.
2013-06-04 14:00:09 -07:00
Eric J Korpela d9d5b4b3b5 - SCHED: changes SETI@home feasibility to allow VLAR to go to ATI GPUs
with cal_target>15 and NVIDIA GPUs with compute capability>=3.0
2013-06-04 13:57:30 -07:00
David Anderson b9f0733c06 server: replace strcpy() with strlcpy() various places 2013-06-03 22:42:53 -07:00
David Anderson 846b8c7757 all components: change strcpy() to strlcpy() when possible.
This commit should cover the client and manager code.
2013-06-03 20:24:48 -07:00
David Anderson ba68f452a0 server: fix bug related to job-size matching
Problem: a workunit could error out with unsent results.
The feeder skips such results, but the size_regulator counts them
and doesn't so doesn't promote any new results.
Solution: the feeder scans for results even with workunit errors.
If marks these results as state OVER, outcome DIDNT_NEED
2013-05-24 20:11:14 -07:00
David Anderson cde42fcbcc server: parse product_name in scheduler request, store in DB
This will let projects see what kind of device each Android host is,
possibly helping with app debugging.
2013-05-23 23:30:42 -07:00
David Anderson 64ccb6afbf scheduler: fix bug that prevented Intel GPUs from getting work 2013-05-23 09:48:43 -07:00
David Anderson 4a90705107 db_purge: add --mod N R option to allow multiple instances. From Kevin Reed 2013-05-22 21:13:24 -07:00
David Anderson bf96878fe8 scheduler: comparison function for score-based scheduling was backwards 2013-05-22 10:20:54 -07:00
David Anderson fa43e0fe6e scheduler: enforce job limits in score-based scheduling 2013-05-21 20:14:39 -07:00
Eric J Korpela 225dc6534a - SCHED: Modified the SETI@home version of wu_is_infeasible_custom() to allow
very low angle range (VLAR) results to go to newer AMD/ATI GPUs.
2013-05-21 09:20:53 -07:00
David Anderson 8e2524f55f Unix build: Makefile changes for "make install", from Steffen Moeller
"make install" followed by make_project should now work
2013-05-20 15:19:13 -07:00
David Anderson 9049737d1f validator: retry if transient failure
check_set() wasn't returning "retry" properly in the case where
one of the calls to init_result() return ERR_OPEN_DIR
(treated as a transient failure, since it can be caused by a failed NFS mount)
2013-05-20 13:01:10 -07:00
David Anderson 7472e29495 fix Clang warning 2013-05-20 13:00:22 -07:00
David Anderson 5827ff2a68 transitioner: fix bugs when size matching is used. 2013-05-20 10:25:58 -07:00
Eric J Korpela fa11c320db Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2013-05-19 11:14:31 -07:00
Eric J Korpela 6c76ddd45c - SCHED: Fixed problem that prevented proper driver version checking in cuda and
nvidia plan classes in plan_class_spec.xml
- SCHED: Scheduler was not using properly estimated performance when assigning
  work.  It was using theoretical performance to choose version and actual
  preformance to determine how long it would take.  I've changed that to start
  with theoretical performance and converge to actual performance as
  host_app_version pfc_n increases.
- SCHED: Added some additional app version selection debugging output.
2013-05-19 11:08:36 -07:00
David Anderson 24998d0a7d scheduler: fix bug that could permanently disconnect clients
The scheduler sends <no_rsc_apps> flags for processor types for which
the project doesn't have app versions.
Problem: if the project doesn't have app versions for any processor types
(e.g. because everything was temporarily deprecated)
and it sends all the flags,
7.0.x clients may never contact the scheduler again.
Solution: check whether we have app versions for any of the client's processor types.
If not, don't send the no_rsc_apps flags.
2013-05-17 11:38:24 -07:00
David Anderson 66589cbc5a file upload handler: handle zero-length files correctly 2013-05-15 11:04:39 -07:00
Eric J Korpela fd5c8c6e82 - Added scheduler config boolean option <estimate_flops_from_hav_pfc> which
allows projected_flops to be calculated from host_app_version pfc rather
  than elapsed time.  This is valuable if result elapsed times are highly
  variable and dependent on input.
2013-04-30 16:30:27 -07:00
Eric J Korpela 8998f7d21e Added missing '\n' in plan_class_spec debugging output. 2013-04-25 16:33:22 -07:00
Eric J Korpela 84fc11cb3a Updated sample plan classes to show newer features. 2013-04-25 13:43:30 -07:00
Eric J Korpela ca40cdac33 Added "<without_opencl>" boolean to plan_class_spec to make it possible to
restrict an ATI/AMD CAL app to GPUs and drivers that don't support OpenCL.
2013-04-25 13:28:41 -07:00
Eric J Korpela 24353261c4 Fixed problems with FCGI compiles introduced in recent checkins. 2013-04-25 12:46:22 -07:00
David Anderson 0c430ce1fa Add support for multi-size apps
See http://boinc.berkeley.edu/trac/wiki/MultiSize
The components of this include:
- DB changes:
    add size_class to workunit and result
    n_size_classes to app; >1 means multi-size
- size_regulator daemon program: change results states
    from INACTIVE to UNSENT carefully
- size_census program; writes quantile info in flat files
- transitioner: when creating results for multi-size apps,
    set server state to INACTIVE
- sched shmem (feeder): read quantile info from flat files,
    store in shared memory
- scheduler (score-based scheduling): for multi-size apps,
    add component to score function for size class.
- show_shmem: show result size class
- make_work (and other callers of count_unsent_results()):
    count both INACTIVE and UNSENT
- create_work: add --size_class cmdline option

Also:
- if get MySQL errors in upgrade, don't rewrite db_version
2013-04-25 00:27:35 -07:00
David Anderson 8740e9a2b5 - web: update text for finding data directory 2013-04-24 19:15:06 -07:00
David Anderson 8846a15571 - sample work generator: maintain a buffer of N unsent jobs
for the given app, not total.  From Jon Sonntag.
2013-04-20 13:49:51 -07:00
David Anderson 478900c321 - web/scheduler: add project preference for not getting Intel GPU jobs 2013-04-20 12:25:55 -07:00
David Anderson eac1264656 - scheduler: send <no_rsc_apps> elements to post-7.0.40 clients 2013-04-19 00:11:24 -07:00
David Anderson aa07305eeb - GUI RPC: add "project_dir" field to PROJECT struct.
GUIs can look for image files (stat_icon etc.) in this directory.
2013-04-18 12:43:17 -07:00
David Anderson 7abfe40063 - scheduler: add optional <host_summary_regex> element to plan_class_spec.xml.
This regular expression is matched against the "host summary" string
    stored in host.serialnum.
    You can use this, e.g., to allow only particular GPU models.
2013-04-15 12:00:14 -07:00
Eric J Korpela 9f1205f627 Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2013-04-10 18:23:31 -07:00
Eric J Korpela 61609281c1 - added opencl_driver_revision to OPENCL_DEVICE_PROP and PLAN_CLASS_SPEC. This
was necessary because ATI is releasing OpenCL drivers that don't work.
2013-04-10 18:20:22 -07:00
David Anderson 55f45c8d22 - scheduler: fixes for new score-based scheduling 2013-04-10 15:52:53 -07:00
David Anderson c9c9f2bae0 - scheduler: code shuffle; new file sched_check.cpp contains functions
that decide whether a job can be sent to a host
2013-04-09 12:19:00 -07:00
David Anderson 12319ca82b - scheduler: add code (commented out for now) for new implementation
of score-based scheduling.
2013-04-09 11:10:50 -07:00
David Anderson 5b701ef9e0 - scheduler: fix bug in plan class XML spec,
when it uses a project-specific pref element that's
    missing from a user's prefs.
    From Michael Goetz via Rytis.
2013-04-04 23:58:15 -07:00
David Anderson 24e8133e4b - tabs -> spaces 2013-04-02 17:23:37 -07:00
Eric J Korpela f6ee54a602 Added a couple debugging statements. 2013-03-26 15:24:45 -07:00
David Anderson 980c9b66c9 - validator: fix confused logic.
A "viable" result is one that could potentially become the canonical result,
    i.e. the outcome is SUCCESS and the validate state is not INVALID.
    The existing code treated all results with outcome SUCCESS as viable,
    which is wrong.
    In particular, this could cause workunit.target_nresults
    to be incremented inappropriately.
2013-03-22 10:28:20 +01:00
Eric J Korpela a4e4b2fba0 - Double include protection added to sched_customize.h 2013-03-07 11:31:38 +01:00
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 2dbfdc5505 - scheduler, locality scheduling variant: fix SQL injection vulnerability
(this affects only Einstein@home)
2013-03-07 11:28:43 +01:00
David Anderson 2fea038249 - Scheduler: fix security vulnerabilities 2013-03-07 11:28:42 +01:00
David Anderson 6f98cf9dc0 - project setup: create a default gui_urls.xml file 2013-03-05 14:52:38 +01:00
Eric J Korpela 4a4678aeb9 - Added boinc version checking to plan_class_spec. New plan_class_spec.xml tags
are   <max_core_client_version> and <min_core_client_version> which are
  integer values major*10000+minor*100+release
2013-03-05 14:17:54 +01:00
David Anderson 9817ee5850 - scheduler: fix typo in sticky file deletion code 2013-03-05 13:53:58 +01:00
David Anderson fce6266e23 - Web RPC for remote job submit: fix bugs
- scheduler: message tweaks
2013-03-05 13:53:58 +01:00
David Anderson b250f1bb98 - scheduler: add <debug_client_files> flag for showing actions
involving sticky files
2013-03-05 13:43:14 +01:00
Eric J Korpela 6ac06fca94 Fixed another FCGI compile problem. 2013-03-05 13:35:48 +01:00
David Anderson 657c0f9730 - show_shmem: show more stuff, and improve display
- job prioritization tweaks
2013-03-04 17:48:45 +01:00
David Anderson 4ce26192b3 - web: fix typo in sandbox feature 2013-03-04 17:44:39 +01:00
David Anderson 450c5592ae - scheduler: add feature for deleting no-longer-used sticky files.
Create a file "file_delete_regex" in your project dir.
    Each line is a regular expression.
    Any sticky file whose name matches one of the expressions is deleted.
2013-03-04 17:39:24 +01:00
David Anderson 3d60ae2508 - add PHP script for initializing user submit priorities
based on existing batches
2013-03-04 17:39:23 +01:00
David Anderson 13f1257355 - eliminate use of alloca() and strdupa().
- don't include malloc.h
- fix compile warnings
2013-03-04 17:24:19 +01:00
David Anderson 6f962d5b61 - file upload handler: in FCGI version, check for trigger file
each time through loop (from Bernd).
- validator: fix bug that zeroed result.random
2013-03-04 17:24:18 +01:00
David Anderson 7cdb3a7080 - web: add advisory text to "Export as Notice" balloon
- scheduler: make max # of CPUs a #define, default 4096
2013-03-04 17:24:18 +01:00
David Anderson 834bb6b4d3 - server (start script and server_status.php):
Support projects (e.g. Einstein@home) in which server components run on
    machines with no shared filesystem.
    From Bernd.
2013-03-04 17:19:39 +01:00
David Anderson a64cb793f1 - scheduler: attempted performance enhancement.
Old: each scheduler process holds a semaphore
        while scanning the shared-mem job array.
        On machines with many CPUs
        there seems to be contention for this semaphore,
        causing slow scheduler response and possibly connection failures.
    New: Don't hold the semaphore while scanning array.
        Instead, if find a job that passes quick_check(),
        acquire the semaphore and recheck that the job is present in array
        and passes quick_check().
- client: show messages if app_config.xml has unrecognized tags
2013-03-04 17:16:56 +01:00
Rom Walton 3c20551a8f - server: Add a default plan class for the Intel GPUs.
(opencl_intel_gpu_101)
2013-03-04 17:01:37 +01:00
David Anderson 0c4a9bc452 - lib: actually let's make it "intel_gpu". 2013-03-04 17:01:37 +01:00
Oliver Bock 508b9b572b Merge branch 'master' of ssh://boinc.berkeley.edu/boinc
Conflicts:
	checkin_notes
	client/acct_mgr.cpp
	client/cs_statefile.cpp
	client/gpu_opencl.cpp
	lib/coproc.cpp

Additional changes:
	client/Makefile.am

Dropped changes:
	client/cs_scheduler.cpp (516eff6)
	sched/sched_send.cpp (2dd8288)
2013-03-04 16:35:08 +01:00
Rom Walton 2dd82881de - client/server: fix build breaks I introduced last night with a variable
rename.
2013-03-04 15:30:03 +01:00
David Anderson 1174b00aba - client/manager: tweaks to Intel GPU code 2013-03-04 15:27:25 +01:00
David Anderson 165e3bb1d5 - adjust_user_priority: scale FLOP count by app's min_avg_pfc
to account for systematic errors in FLOP count
- adjust_user_priority: get total project RAC by summing RAC
    of app versions where RAC has been updated in past week
- feeder: add --priority_asc option
    (for when wu.priority is a logical time)
2013-03-04 15:23:39 +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 e2ab21944d - scheduler: use HOST_USAGE::uses_gpu() function where appropriate 2013-03-04 15:23:37 +01:00
David Anderson 8ae9680134 - server programs: allow config.xml to be a symlink 2013-03-04 15:16:59 +01:00
David Anderson 6205ffed08 - scheduler: add extra check for not sending homogeneous app version
jobs to anonymous platform clients
- remote job submission: add DB table for keeping track of files
2013-03-04 15:16:58 +01:00
David Anderson f31a63b0c8 - scheduler: if primary platform is anonymous, ignore alternate platforms. 2013-03-04 15:06:32 +01:00
David Anderson e538c8c303 - client: TIME_STATS fields go in <time_stats> part of state file
- scheduler: parse TIME_STATS fields (e.g., uptime)
- admin web: small fix for manage_apps.php
2013-03-04 14:14:05 +01:00
David Anderson a93d8d1e4f - scheduler: compile fix for wu_is_infeasible_custom() 2013-03-01 16:26:09 +01:00
David Anderson 18716b0bda - scheduler: remove redundant call to wu_is_infeasible_custom()
introduced in yesterday's commit
2013-03-01 16:26:09 +01:00
David Anderson 01c0a9a4b0 - scheduler: when resend jobs:
- don't use devices for which work is not being requested
    - obey wu_is_infeasible_custom()
        (e.g. don't send SETI@home VLAR jobs to GPUs)
- scheduler: add <debug_array_detail> log flag for slot-level messages
- admin web: show and allow control of app.beta
2013-03-01 16:26:08 +01:00
David Anderson ca652519cf - scheduler: log message tweaks
- Some C++ files in client had execute permissions (??).  Clear them.
2013-03-01 16:26:08 +01:00
David Anderson 9fb0328d9b - scheduler: add separate log flag for locality sched lite 2013-03-01 16:26:08 +01:00
David Anderson 6391a8c401 - remote job submission: show 20 batches, with link to show all
- XML parser: make low-level functions inline, in an attempt
    (unsuccessful, as far as I can tell) to boost performance
2013-03-01 16:26:08 +01:00
Bernd Machenschalk 444cc65722 make extern declaration of fpops_to_credit() match implementation 2013-03-01 16:26:08 +01:00
David Anderson 42756406f5 - example app: get the graphics app to build on Fedora Core 14
Note: this required installing various packages,
    and tweaking the Makefile in various ways,
    some of them FC14-specific ways
2013-03-01 16:23:13 +01:00
David Anderson 1e06eb2fda - fix a few unlikely but possible file-descriptor leaks
- remote job submission: always compute fraction done when showing
    batch list; check for nonexistent user
2013-03-01 16:17:19 +01:00
David Anderson 36c304e7d3 - client: maintain current and previous uptime, and include them in scheduler RPC request. - scheduler: parse them Note: this is to support a future feature where the scheduler will send non-checkpointing jobs only clients likely to be able to complete them. 2013-02-26 16:53:20 +01:00
David Anderson 3017ed943f - scheduler: debug the above 2013-02-26 16:44:26 +01:00
BOINC Admin c8b8c6155f need to add files? 2013-02-26 16:37:26 +01:00
David Anderson 282af6effc - user web: show the right page/message after the following actions:
- rate a post
    - moderate a post
    - edit a post
    - report a post


svn path=/trunk/boinc/; revision=26152
2012-10-15 18:47:55 +00:00
Eric J. Korpela 33962b77e1 - sched: 2 bug fixes in credit.cpp
- It was possible if all results for a workunit were PFC_MODE_INVALID
          that NaN pfc would be used causing database update errors.  Solved
          by using wu_estimated_pfc() as pfc in that case.
        - Sanity check was comparing raw_pfc directly to rsc_fpops_bound.  That
          was causing problems GPUs with high performance estimates.  Fixed by
          including the app_version scale factor in the check.  I thought I had
          already committed this...
        - Removed a few lines of commented out experimental code accidentally
          comitted earlier.
        - Committed to git repository on 8/24


svn path=/trunk/boinc/; revision=26144
2012-10-02 15:20:13 +00:00
David Anderson aa289f0916 - A bunch of tweaks from Steffen Moller, e.g. using MAXPATHLEN
svn path=/trunk/boinc/; revision=26133
2012-09-21 03:52:24 +00:00
David Anderson b2f9e30570 - scheduler: fix bug that cause NCI to be sent even when
client is not requesting work
- client: parse the <vbox_window> option in cc_config.xml


svn path=/trunk/boinc/; revision=26127
2012-09-19 23:21:04 +00:00
David Anderson cc13f2ee6f - scheduler: fix logic error limited locality scheduling.
In LLS array pass, skip file-on-host check if host
    doesn't have any sticky files.
    TODO: it should actually be "any sticky files for this app".
    But we currently don't have any way to know that.


svn path=/trunk/boinc/; revision=26108
2012-09-13 17:38:55 +00:00
David Anderson 96b8bc39d0 - user web: fix bug when do forum search on Google
svn path=/trunk/boinc/; revision=26101
2012-09-12 22:31:23 +00:00
Eric J. Korpela b7741c880e -fixed bug in plan_class_spec.cpp the resulting in GPU performance
not being included in scheduler or credit calculations.


svn path=/trunk/boinc/; revision=26087
2012-09-10 22:56:46 +00:00
David Anderson 77f44e521c - scheduler: more detailed msgs for NCI job sending
svn path=/trunk/boinc/; revision=26080
2012-09-08 04:05:50 +00:00
David Anderson 6b81e2ffc3 - scheduler: fix sending of NCI jobs.
We were failing to mark the cache entries as free.
- API: initialize GPU device # to -1;
    If client doesn't give us a device number, something is wrong
    and it's better to not start computing.


svn path=/trunk/boinc/; revision=26079
2012-09-06 23:44:03 +00:00
David Anderson 6ba0dd5722 svn path=/trunk/boinc/; revision=26078 2012-09-06 22:46:02 +00:00
David Anderson d83b882851 svn path=/trunk/boinc/; revision=26077 2012-09-06 19:41:49 +00:00
David Anderson 455dd3bb95 - scheduler: fix bug in homogeneous app version.
We were using a static BEST_APP_VERSION in
    check_homogeneous_app_version(),
    and it wasn't being initialized on each call
    (e.g. its HOST_USAGE was not being cleared).


svn path=/trunk/boinc/; revision=26076
2012-09-06 19:25:05 +00:00
David Anderson d339beb76e - admin web: credit browser tweaks
svn path=/trunk/boinc/; revision=26075
2012-09-06 17:13:35 +00:00
David Anderson 19602f45f0 - admin web: improve script for browsing credit info
- client: add a coproc-missing message


svn path=/trunk/boinc/; revision=26074
2012-09-06 03:58:24 +00: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 b1d1e21de4 - remote job submission: start writing a general-purpose
cmdline tool for remote job submission (not done)
- remote job submission: support the 4 file modes described
    in the documentation (not done)


svn path=/trunk/boinc/; revision=26067
2012-08-31 06:11:06 +00:00
David Anderson 6b7fb36056 - scheduler: msg tweaks
svn path=/trunk/boinc/; revision=26066
2012-08-29 18:08:15 +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 0483da30f4 - server: compile fix
- server: add nfiles_on_host(),
    a support function for "locality scheduling lite".


svn path=/trunk/boinc/; revision=26061
2012-08-26 21:24:18 +00:00
David Anderson 32da1a7e37 - server: add support for having a mixture of CPU-intensive
and non-CPU-intensive applications.
    An app can be specified as non-CPU-intensive in project.xml,
    and this attribute can be set or cleared using the admin web interface.
    Note: support for this was added to the client in 2011,
    but we didn't add server-side support at that time.
    This change is in 6.12 and later clients.


svn path=/trunk/boinc/; revision=26060
2012-08-25 04:09:24 +00:00
David Anderson a9e78b6459 - volunteer storage: fix the way that hosts are classified as alive/dead
- add a config item vda_host_timeout.
        A host that hasn't done a scheduler RPC for this long
        is considered dead.
    - a host that's not running a version 7+ client is considered dead
    - host.cpu_efficiency (an otherwise unused field) is used
        as a flag for dead hosts
    - the scheduler clears the flag if the client is v7+
    - vdad sets the flag for hosts where last RPC is old
    - before choosing a host for chunk download,
        vdad checks its client version.


svn path=/trunk/boinc/; revision=26059
2012-08-24 19:06:41 +00:00
David Anderson 2ebc7de2cb - file_upload_handler: bug fix
- volunteer storage: buf fixes


svn path=/trunk/boinc/; revision=26056
2012-08-22 18:23:01 +00:00
David Anderson e79d3ea4c8 - client: change the way project disk share is computed.
- Allow projects to report "desired disk usage" (DDU).
        If the client learns that a project wants disk space,
        it can shrink the allocation to other projects.
    - Base share computation on DDU rather than disk usage.
    - Introduce the notion of "disk resource share".
        This is defined (somewhat arbitrarily) as resource share
        plus 1/10 of the largest resource share.
        This is intended to ensure that even zero-share projects
        get enough disk space to store app versions and data files;
        otherwise they wouldn't be able to compute.
- server: use host.d_boinc_max (which wasn't being used)
    to start d_project_share reported by client.
- volunteer storage: change the way hosts are allocated to chunks.
    Allow hosts to store several chunks of the same file, if needed


svn path=/trunk/boinc/; revision=26052
2012-08-22 04:02:52 +00:00
David Anderson 80be72e9b5 - file upload handler:
Do first read from socket before opening the disk file
    (an attempt to fix filesystem lockups on WCG).
    Increase buffer size from 16KB to 256KB.


svn path=/trunk/boinc/; revision=26046
2012-08-18 23:38:52 +00:00
David Anderson b029e352c9 - scheduler: if sending GPU description to pre-7.0 client,
call it CUDA instead of NVIDIA


svn path=/trunk/boinc/; revision=26042
2012-08-17 06:10:25 +00:00
David Anderson 0d42a4aa5c - file upload handler: add an #ifdef for disabling locking of files
while writing to them.
    It's not clear to me that this locking is beneficial,
    and it may be causing filesystem problems at WCG
- volunteer storage stuff


svn path=/trunk/boinc/; revision=26021
2012-08-15 21:27:38 +00:00
David Anderson 25c2f6b49c - client: treat all 4xx HTTP errors as permanent
- code cleanup
- API: increase a buffer in timer_handler() from 256 to 512.


svn path=/trunk/boinc/; revision=26012
2012-08-13 18:23:20 +00:00
David Anderson b6234edc95 - db_purge: fix typo that cause bad DB query when using assignments
svn path=/trunk/boinc/; revision=26010
2012-08-12 06:54:20 +00:00
David Anderson 0129c1c53d - server: fix bug in restrict_wu_to_user() that caused it
to go into infinite loop


svn path=/trunk/boinc/; revision=26006
2012-08-11 04:20:48 +00:00
Eric J. Korpela 9b9ec18d69 - Fixed typo
svn path=/trunk/boinc/; revision=26000
2012-08-09 16:23:38 +00:00
Eric J. Korpela 5c24fc50eb - Credit is more stable when pegged_avg() is used.
- When a normal and an approx result are compared the normal result now gets
  double weight in a pegged_avg() with any approx results. "Normal mode" GPU 
  results are frequently resulting in bad credit values for yet undetermined 
  reasons.  Since GPUs are so fast, there can be a lot of bad values in a 
  short time.  Including the prior average and another result even seems to
  prevent this in many case.
- Replaced many of the if { msg_log.printf } with msg_log.cond_printf()
- Accidentally changed some of the formatting when trying a new editor that
  apparently autoformats. Sorry for the extra diff lines.
- There's a problem with pfc calculation for hosts whose credit calculation
  fails the sanity check.  This has been a problem for a long time.  Because the
  result fails the sanity check, the host_app_version pfc is never updated.
  Because hav.pfc is never updated, the credit calculation continues to be
  wrong. To quote Quinn, it's like one of those viscious things. I hope to 
  fix that soon.

svn path=/trunk/boinc/; revision=25999
2012-08-09 03:02:51 +00:00
David Anderson d085bc4ee6 - Client/manager: there was a bug because some code was writing
"cpu" in XML, and other code was looking for "CPU".
    To fix this and prevent similar problems,
    processor type names are now encapsulated in proc_type_name_xml().
    Code should use this rather than having hard-wired names.
    Redefine: GPU_TYPE_* as macros that call proc_type_name_xml().


svn path=/trunk/boinc/; revision=25996
2012-08-08 23:09:43 +00:00
David Anderson 13b6aefbd7 - scheduler: fix message typo
svn path=/trunk/boinc/; revision=25985
2012-08-05 01:40:19 +00:00
Eric J. Korpela d7b7609059 - Altered randomization factor in version selection to remove slower versions
from distributions more rapidly.


svn path=/trunk/boinc/; revision=25958
2012-08-02 23:18:51 +00:00
David Anderson c4b337d276 - scheduler: compile fixes for FCGI
svn path=/trunk/boinc/; revision=25955
2012-08-02 16:17:10 +00:00
Eric J. Korpela 29d5781a34 - Modified credit granting for "appox credit" result to weight results by
proximity to the average estimate.  This reduces the number of results that
  are granted extremely low credit when a new app_version is released and (I
  hope) improves work/duration estimates by speeding up the convergence of app
  versions stats.  I may try using this in lieu of low_average for normal
  result, but haven't yet.


svn path=/trunk/boinc/; revision=25953
2012-08-02 15:45:13 +00:00
David Anderson da7e40f142 - use <cmath> instead of <math.h>. Seems to be needed on Debian.
svn path=/trunk/boinc/; revision=25938
2012-08-01 21:21:38 +00:00
David Anderson 8761ed75f7 - lib: fix typo
svn path=/trunk/boinc/; revision=25884
2012-07-22 03:45:47 +00:00
David Anderson 9a84980792 - lib: treat MINGW32 like CYGWIN32 (in 1 place - should do everywhere?)
from Oliver


svn path=/trunk/boinc/; revision=25874
2012-07-17 03:59:12 +00:00
David Anderson 075d544c9f - web: when posting to a thread, show a page of its most recent posts
- feeder: add --by_batch option: interleaves jobs from different batches.
    From Jack Harris.


svn path=/trunk/boinc/; revision=25871
2012-07-13 21:10:38 +00:00
David Anderson 78f74661aa - distributed storage: move chunk_size to VDA_FILE.
Add some missing code.


svn path=/trunk/boinc/; revision=25854
2012-07-07 19:44:48 +00:00
David Anderson 68f9880615 - client: remove "device" entry from CUDA_DEVICE_PROP,
and change types of mem-size fields from int to double.
    These fields are size_t in NVIDIA's version of this;
    however, cuDeviceGetAttribute() returns them as int,
    so I don't see where this makes any difference.
- client: fix bug in handling of <no_rsc_apps> element.
- scheduler: message tweaks.
    Note: [foo] means that the message is enabled by <debug_foo>.



svn path=/trunk/boinc/; revision=25849
2012-07-05 20:24:17 +00:00
Eric J. Korpela 0bb1fd6581 Added additional debugging output for plan classes.
Replaced caluclation of ati version as integer with call to ati_version_int in
plan_class_spec.cpp


svn path=/trunk/boinc/; revision=25848
2012-07-05 15:29:38 +00:00
David Anderson 8d8662adb2 - more code cleanup
svn path=/trunk/boinc/; revision=25838
2012-07-02 19:31:34 +00:00
David Anderson 19458ba4de - Compile fixes for Fedora core 17. From Christian B. Fixes #1194.
- Fix various #include issues.

CODING STYLE LAW (minimal inclusion principle):
    If foo.cpp requires <blah.h>,
    #include <blah.h> in foo.cpp, NOT foo.h


svn path=/trunk/boinc/; revision=25837
2012-07-02 18:51:02 +00:00
David Anderson fc2af21221 - client: add missing end tag for <pci_info>. Doh!
- validator: add some sanity-checking for credit,
    to prevent granting 1e38 credit.
    max_granted_credit now defaults to the equivalent of 1 TeraFLOP-year.
    Instances that exceed this are not counted in the credit
    calculation, and a critical-mode log message is written
- wrapper: remove wall_cpu_time; not used anymore


svn path=/trunk/boinc/; revision=25825
2012-06-29 22:24:07 +00:00
David Anderson 1776a244ae - web: when showing a batch, recompute and update its fraction done
- feeder: don't enumerate results for WUs with nonzero error_mask
- scheduler: in slow_check(), make sure the WU error_mask is still zero


svn path=/trunk/boinc/; revision=25822
2012-06-29 06:53:48 +00:00
David Anderson f3eb1d350e - client: when estimating FLOPS for an anonymous-platform app version
for which no estimate has been supplied by user,
    use (CPU speed)*(cpu_usage + 10*gpu_usage)
    (add the 10*)


svn path=/trunk/boinc/; revision=25821
2012-06-29 05:17:01 +00:00
David Anderson 6b5bb0a3e6 - Unix build tweak
svn path=/trunk/boinc/; revision=25818
2012-06-28 06:27:37 +00:00
David Anderson f8c1665722 - client: keep track of the fraction of time that
1) a network connection is available and
    2) network communication is allowed and
    3) CPU computation is allowed
- If an app version is marked as needs_network,
    use the above fraction in estimating its rate of progress
- replace "core client" with "client" in comments.
- scheduler: message tweaks


svn path=/trunk/boinc/; revision=25803
2012-06-26 20:30:56 +00:00
David Anderson 8c71f6d59a - scheduler: add support for Intel GPUs, and restructure things
to make it easier to add other GPU types in the future


svn path=/trunk/boinc/; revision=25792
2012-06-25 23:09:45 +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 0cc0370f02 - client, GUI RPC: detect and export the PCI bus, device, and domain #s.
- scheduler: increase #GPU limit from 8 to 64


svn path=/trunk/boinc/; revision=25761
2012-06-15 20:49:11 +00:00
David Anderson e9362c80ff - scheduler: send <dont_use_dcf> only if client is 7.0.28 or later.
svn path=/trunk/boinc/; revision=25759
2012-06-14 17:14:52 +00:00
David Anderson 3a2328b10d - scheduler: remove <dont_use_dcf/> from scheduler reply for now;
the 7.0.25 client has a bug that causes jobs
    to run EDF if this flag is present.


svn path=/trunk/boinc/; revision=25755
2012-06-13 17:40:39 +00:00
David Anderson 54078e92c4 - fixes of various (non-critical) fd and memory leaks.
Fixes #1188.  From Julien.
- fix bugs in setting scheduler output buffer size
- code formatting


svn path=/trunk/boinc/; revision=25750
2012-06-10 05:38:34 +00:00
David Anderson 751fdd97ca - scheduler: add <min_cal_target>, <max_cal_target>
to plan class XML spec options;
    lets you specify a range of ATI GPU models to use


svn path=/trunk/boinc/; revision=25749
2012-06-07 21:08:47 +00:00
David Anderson f08ca99ff3 - scheduler: add max_results_accepted config option.
Limits mem usage by the scheduler, can prevent crashes.


svn path=/trunk/boinc/; revision=25748
2012-06-07 18:34:53 +00:00
David Anderson 0492e0c2b8 - scheduler: add <need_ati_libs> option
svn path=/trunk/boinc/; revision=25747
2012-06-07 03:39:37 +00:00
Bernd Machenschalk 470c505d78 - scheduler: minor fixes to plan_clas_spec:
- consistently accept both 'ati' and 'amd' for AMD/ATI plan classes
      - in OpenCL plan classes always use device memory reported via OpenCL
        (might be different e.g. from what's available/reported via CUDA)
      - comment formatting

svn path=/trunk/boinc/; revision=25744
2012-06-06 10:05:00 +00:00
Bernd Machenschalk ac24fafb4c - scheduler: moved client version check to be last of the checks
performed for a particular app version. It is not necessary
        to tell the user to upgrade the client just to suite the needs of
        a particular app version if this app version requires resources
        that the host dosn't have or didn't request work for.

        Actually I don't think it's good to tell the user he needs to
        upgrade the client if there is only one particular app version
        that requires a more recent one than he has. I think that the
        purpose of the g_wreq->outdated_client flag was checking the                                                                                                                                     
        min_core_version in the project configuration. For this the                                                                                                                                      
        flag and the notice/message that it triggers is still ok. But                                                                                                                                    
        in the app version checks setting this flag leads to misleading                                                                                                                                  
        messages in most cases, so I commented that out for now.

        I'm not sure, though, that both of these measurements are needed.

svn path=/trunk/boinc/; revision=25742
2012-06-06 09:11:41 +00:00
David Anderson c94ca443c1 - scheduler: add example plan_class_spec.xml
- scheduler: change gpu_type from "ati" to "amd" in plan class spec


svn path=/trunk/boinc/; revision=25741
2012-06-06 06:05:14 +00:00
David Anderson 567fdc45fc - scheduler: add Vbox stuff to plan_class_spec
svn path=/trunk/boinc/; revision=25739
2012-06-06 04:45:12 +00:00
David Anderson b0fd55bf87 - scheduler: debug plan_class_spec a little.
Add an #ifdef'd main program in plan_class_spec.cpp,
    and a makefile, for testing purposes.


svn path=/trunk/boinc/; revision=25738
2012-06-06 03:47:13 +00:00
David Anderson 8d284f2b17 - scheduler: if we truncate the # of results accepted
(like we're doing in SETI@home)
    don't resend lost results since we don't know what they are


svn path=/trunk/boinc/; revision=25733
2012-06-05 03:48:05 +00:00
David Anderson 69a595329d - scheduler: various fixes to plan_class_spec.cpp; from Bernd
- admin web: don't include the project's stylesheet,
    which may assume a layout not used by admin pages


svn path=/trunk/boinc/; revision=25731
2012-06-03 17:31:00 +00:00
David Anderson 127f22e841 - feeder: if we purge a stale job, and it's commited to an HR class,
un-commit it since that's probably the reason why it's stuck
    (and it may never get unstuck)


svn path=/trunk/boinc/; revision=25726
2012-05-29 06:32:11 +00:00
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 d2d9110584 - add script to repair damaged user.global_prefs fields
- compile warning fixes


svn path=/trunk/boinc/; revision=25707
2012-05-23 00:25:19 +00:00
David Anderson 023031a497 - scheduler: add a lot more debug messages if <debug_array> is set
svn path=/trunk/boinc/; revision=25694
2012-05-18 18:13:04 +00:00
David Anderson 71e93caf85 - scheduler: revision of app_plan_spec mechanism.
Not debugged, but it compiles now.


svn path=/trunk/boinc/; revision=25675
2012-05-14 19:49:12 +00:00
David Anderson 7f3fd1f45e - LAMMPS script: chdir back to html/user, else page_head() breaks
svn path=/trunk/boinc/; revision=25674
2012-05-14 06:54:38 +00:00
Bernd Machenschalk 003700930e scheduler: don't try to send_file_deletes() with an incomplete request
svn path=/trunk/boinc/; revision=25670
2012-05-11 09:45:02 +00:00
David Anderson 32a08d27d9 - C++ code: use MAXPATHLEN for char arrays that hold paths
svn path=/trunk/boinc/; revision=25659
2012-05-09 16:11:50 +00:00
Bernd Machenschalk 84a53855ad scheduler: don't override avg_ncpus per default
svn path=/trunk/boinc/; revision=25657
2012-05-08 12:51:20 +00:00
Bernd Machenschalk f57f4634df scheduler: no functional change, just got rid of DOS linebreaks
svn path=/trunk/boinc/; revision=25656
2012-05-08 12:31:37 +00:00
David Anderson 42c909ae03 - scheduler: change ET_RATIO_LIMIT to 250
svn path=/trunk/boinc/; revision=25606
2012-04-27 06:17:59 +00:00
David Anderson 6888468d6d - scheduler: call get_reliability_and_trust() and get_prefs_info()
in send_work_setup(), so that they run before lost jobs are resent.
    Otherwise lost jobs could get sent using an app version
    that's prohibited by prefs


svn path=/trunk/boinc/; revision=25604
2012-04-26 21:40:20 +00:00
David Anderson 813470f08d - Bad logic in Win code:
if you have
        *pbuf = HeapAlloc(...)
    then you need
        if (*pbuf == NULL)
    not
        if (pbuf == NULL)
- various code cleanups from 
- Makefile.am: don't include clientgui/res; nothing to make there

from Steffen Moeller


svn path=/trunk/boinc/; revision=25599
2012-04-25 07:09:14 +00:00
David Anderson 9d25481174 - scheduler: fix bug that tried to open plan class spec file
on each request.
- client: when showing how much work a scheduler request returned,
    scale by availability (as is done to show the amount of the request)
- client in account manager request, <not_started_dur> and
    <in_progress_dur> are in wall time, not run time
    (i.e. scale them by availability)

Note: there's some confusion in the code between runtime and wall time,
    where in general wall time = runtime / availability.
    New convention: let's use "runtime" for the former,
    and "duration" for the latter.

svn path=/trunk/boinc/; revision=25597
2012-04-25 04:10:29 +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 66b20e1138 - scheduler: handling of allow_multiple_clients flag from client
was wrong.  From Bernd.


svn path=/trunk/boinc/; revision=25579
2012-04-17 23:23:22 +00:00
David Anderson 8208a3b72f - scheduler: add a program that targets remaining jobs in a batch
to a particular user (e.g. for cloud execution).
    From Derrick Kondo.


svn path=/trunk/boinc/; revision=25576
2012-04-17 21:50:13 +00:00
David Anderson fca2956408 - scheduler: fix bug in assigned-job logic (from Derrick Kondo)
- client: only send active tasks in get_simple_gui_info GUI RPC


svn path=/trunk/boinc/; revision=25575
2012-04-17 21:39:55 +00:00
Wenjing Wu ccad62b912 - wrapper: when reading fraction-done file, read the last line
(or at least the last double).
    This accommodates a particular application (LAMMPS)
    that can only append to this file.
- CAS@home stuff


svn path=/trunk/boinc/; revision=25557
2012-04-13 09:44:01 +00:00
David Anderson 759c23ed27 - server: create a harness for testing validator code.
If you link your functions (init_result(), compare_results(),
    cleanup_result()) with validate_test.cpp,
    you'll get a program that you can run as
        validate_test file1 file2
    and it will compare the two files
    (this works only for validators that expect 1 file per result).

    I added a makefile, sched/makefile_validator_test,
    that you can use for this.
- server: shuffle code so that the above doesn't need to
    link MySQL libraries
- client: if we fetch a master file and it contains no scheduler URLs,
    show a message of class INTERNAL_ERROR
- client/scheduler: make CUDA_DEVICE_PROP.totalGlobalMem a double,
    and remove dtotalGlobalMem.
    Although NVIDIA reports RAM size as a size_t,
    there's no reason to store it as an integer after that.


svn path=/trunk/boinc/; revision=25542
2012-04-10 00:32:35 +00:00
David Anderson 86f50ba080 - admin web: when resetting app statistics,
clear elapsed time stats as well as PFC stats


svn path=/trunk/boinc/; revision=25530
2012-04-05 11:01:38 +00:00
David Anderson c22ac04ad0 - scheduler: don't max with min_work_buffer() in estimating
job turnaround time.
    min_work_buffer doesn't necessarily reflect network disconnect periods
- client simulator: compile fixes


svn path=/trunk/boinc/; revision=25521
2012-03-30 21:39:22 +00:00
David Anderson fb20906923 - scheduler: ignore app_version.max_core_version if it's zero
svn path=/trunk/boinc/; revision=25505
2012-03-29 07:58:47 +00:00
David Anderson 7f3b3584d0 - scheduler: zero host.nsame_ip_addr if IP addr differs from previous
svn path=/trunk/boinc/; revision=25500
2012-03-27 21:22:00 +00:00
David Anderson d3f2d6318f - scheduler: enforce app_version.max_core_version
svn path=/trunk/boinc/; revision=25491
2012-03-26 19:26:12 +00:00
David Anderson ec0ca2615d - scheduler: fix bug that could cause zero credit for
the first few jobs of a new application
    (in wu_estimated_pfc(), only multiply by app.min_avg_pfc
    if it's nonzero).


svn path=/trunk/boinc/; revision=25484
2012-03-23 21:47:06 +00:00
David Anderson 9caa637a4d - server: is_project_dir() was checking that cgi-bin is a directory.
This doesn't work if it's a symlink to a dir.
    Check for that too.


svn path=/trunk/boinc/; revision=25480
2012-03-23 17:45:04 +00:00
David Anderson adab6254bc Update Translation
svn path=/trunk/boinc/; revision=25477
2012-03-23 16:25:19 +00:00
Bernd Machenschalk 75a2116f2e - scheduler: fix hu.peak_flops and hu.projected_flops caclculation
in plan_class_spec by using coproc_pref() and capped_host_fpops()
        (moved coproc_perf() to sched_customize.h to make it available
        in plan_class_spec.cpp, and cleaned up includes)


svn path=/trunk/boinc/; revision=25467
2012-03-21 12:40:18 +00:00
David Anderson 2a0f17c990 - scheduler: if we can't resend a job (e.g. it's for an app
for which the anonymous-platform client doesn't have a version)
    mark it as sent so the transitioner can do its thing


svn path=/trunk/boinc/; revision=25461
2012-03-20 04:36:14 +00:00
David Anderson d677f2c1cd - scheduler: fix a bug in assigning deadlines to resent jobs.
From Kevin.
    NOTE: Kevin also reported a bug that resulted in
    way too large (e.g. year) deadlines.


svn path=/trunk/boinc/; revision=25458
2012-03-19 22:46:00 +00:00
David Anderson 73474ac408 - scheduler: when HR is being used,
make per-HR slot allocation an option rather than the default.
    Kevin reported that slot allocation wasn't working for WCG.
    The default is now no slot allocation,
    and use the regular result enumeration function
    rather than the once that scans the entire table.
    The config flag for enabling slot allocation is <hr_allocate_slots/>.


svn path=/trunk/boinc/; revision=25432
2012-03-15 19:50:10 +00:00
David Anderson 4ce9d9e212 - scheduler: code cleanup for the above
svn path=/trunk/boinc/; revision=25427
2012-03-14 22:42:38 +00:00