Commit Graph

106 Commits

Author SHA1 Message Date
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 679cca5f1f Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2013-06-04 14:01:18 -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
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 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 24e8133e4b - tabs -> spaces 2013-04-02 17:23:37 -07: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
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
David Anderson 1174b00aba - client/manager: tweaks to Intel GPU code 2013-03-04 15:27:25 +01:00
David Anderson e2ab21944d - scheduler: use HOST_USAGE::uses_gpu() function where appropriate 2013-03-04 15:23:37 +01:00
David Anderson a93d8d1e4f - scheduler: compile fix for wu_is_infeasible_custom() 2013-03-01 16:26:09 +01: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
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 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 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
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 a16032dee5 - scheduler: add an alternative way of defining app plan functions
that uses an XML configuration file;
    see http://boinc.berkeley.edu/trac/wiki/AppPlanConfig
    From Bernd.


svn path=/trunk/boinc/; revision=25426
2012-03-14 19:53:16 +00:00
David Anderson f18ffd6fe7 - VDA: add some log messages
- scheduler: add VDA
- client, web: change default prefs to min_buf=.1 days, max_buf=.5 days
- scheduler: app plan function for vbox requires 7.0+ client


svn path=/trunk/boinc/; revision=25351
2012-02-28 06:57:28 +00:00
David Anderson c2ff0d9719 - scheduler: tell the user if we're not sending work because
VirtualBox is not installed


svn path=/trunk/boinc/; revision=25313
2012-02-22 21:21:15 +00:00
David Anderson 64608800cb - scheduler: don't send "update GPU driver" messages if
the client didn't report a driver version #


svn path=/trunk/boinc/; revision=25232
2012-02-09 20:34:29 +00:00
David Anderson 480e28b54c - web: fix the user search feature
- scheduler: parse d_project_share
- scheduler: if vbox and vbox_mt are both available,
    use vbox for a 1-CPU machine


svn path=/trunk/boinc/; revision=25176
2012-02-01 03:30:14 +00:00
Rom Walton be9e807e31 - sched: adjust the vbox??_mt plan classes to use 1.5 CPUs instead
of the full 2 CPUs. Vboxwrapper uses ceil() to allocate enough
        whole CPUs for Virtualbox.  Ideally this will cause the BOINC
        client-side scheduler to use the remaining fraction of the CPU
        for GPU data transfer which will then free up one whole CPU for
        another job.  All without over-commiting anything.
        
    sched/
        sched_customize.cpp

svn path=/trunk/boinc/; revision=25120
2012-01-21 18:51:37 +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 436d56e70b - scheduler: change vbox_mt plan function to use at most 2 cores, not 3
(CERN doesn't actually need 3)


svn path=/trunk/boinc/; revision=25013
2012-01-09 02:48:51 +00:00
David Anderson e8657adfd2 - scheduler: change vbox_mt app plan function to use 1, 2 or 3 CPUs
depending on how many the host has,
    and whether CPU VM extensions are present
    (this reflects the requirements of CernVM).


svn path=/trunk/boinc/; revision=25009
2012-01-08 01:28:39 +00:00
David Anderson 95ebb112c2 - client: for VBox apps, check stderr for "ERR_CPU_VM_EXTENSIONS_DISABLED".
If found, set HOST_INFO::p_vm_extensions_disabled,
    and pass this to the scheduler.
- scheduler (VBox app plan function) if a host has p_vm_extensions_disabled
    set, don't sent it multicore VBox jobs.

Note: if you have a host with VM extensions, and they're disabled
    in the BIOS, and you enable them, you can remove the
    <p_vm_extensions_disabled> line from client_state.xml
    and you'll be eligible to get multicore VM jobs again.


svn path=/trunk/boinc/; revision=24944
2011-12-30 09:43:58 +00:00
David Anderson df5d595c3a - scheduler, vbox plan class function:
send only 32/64 bit version to 32/64 bit host


svn path=/trunk/boinc/; revision=24916
2011-12-27 02:29:51 +00:00
Rom Walton 94c7b82d3b svn path=/trunk/boinc/; revision=24903 2011-12-26 13:42:34 +00:00
David Anderson fe16024982 - scheduler: in vbox plan class, require that host have
VM acceleration hardware feature
- remove job submission: typo fix


svn path=/trunk/boinc/; revision=24902
2011-12-26 08:27:40 +00:00
David Anderson 4774eeda52 - make_project: don't try to copy nonexistent file; fixes #1166
- scheduler: change Vbox app plan function to accommodate
    single and multithreaded variants


svn path=/trunk/boinc/; revision=24884
2011-12-24 05:07:20 +00:00
David Anderson 819360dfe8 - scheduler: encode CAL version numbers in a way that handles
release #s > 1000


svn path=/trunk/boinc/; revision=24746
2011-12-06 19:41:14 +00:00
David Anderson 2d7573b8f7 - scheduler: in app_plan(), check for "opencl" before "ati".
Otherwise "opencl_ati" won't get handled right.
    Fixes #1158


svn path=/trunk/boinc/; revision=24716
2011-12-02 14:37:47 +00:00
David Anderson dd93780787 - API and client: add "ncpus" field to APP_INIT_DATA.
Tells multicore apps how many cores to use.
    The --nthreads command line arg to the app is now deprecated
    though we'll keep it around for the time being.


svn path=/trunk/boinc/; revision=24708
2011-12-01 18:44:19 +00:00
David Anderson 690e18bbe3 - server: plan class names containing 'nvidia' or 'cuda'
are assumed to be for NVIDIA GPU apps;
    plan class names containing 'ati' are assumed to be for AMD GPU apps.
    Clauses for 'nvidia' were missing in a couple of places.


svn path=/trunk/boinc/; revision=24512
2011-11-03 05:26:19 +00:00
David Anderson 836e8aacf7 - scheduler: in cuda_check(), ati_check() and opencl_check()
(in sched_customize.cpp)
    the flops_scale argument is intended to express the
    GPU efficiency (actual/peak).
    Pass appropriate values.


svn path=/trunk/boinc/; revision=24405
2011-10-16 06:04:13 +00:00
David Anderson b1456cfc0b - scheduler: fix a bug that would choose app versions erroneously.
The problem: the choice of app version was based on
    the "projected FLOPS" return by estimate_flops(av).
    If usage stats exist for the host / app version,
    this returns a number X such that
    WU.rsc_fpops_est/X approximates the runtime of a job
    using the given app version..
    (If WU.rsc_fpops_est is way off, this will be correspondingly way off
    from the actual FLOPS the app version will get.)
    However, if there are no usage stats,
    it return an estimate based on host hardware speed,
    which might be 100X less.
    Hence, in some cases a new app version would never get used.

    Solution: choose app versions based on the values
    returned by the app plan functions.
    Use estimate_flops() AFTER choosing the version.
- scheduler: improve the accuracy of FLOPS estimation for GPU apps.
    The "flops_scale" argument to coproc_perf
    (which expresses the difference between peak GPU FLOPS
    and actual FLOPS) should be used to scale GPU FLOPS
    prior to calling coproc_perf(),
    rather than scaling the estimate returned by coproc_perf().
- show_shmem: show have_X_apps flags


svn path=/trunk/boinc/; revision=24385
2011-10-12 23:59:38 +00:00
David Anderson dd3b628748 - client: compare OpenCL-only devices the same as other devices
- code cleanup


svn path=/trunk/boinc/; revision=24354
2011-10-08 06:33:39 +00:00
David Anderson 6da80764fc - scheduler add app_plan() support for plan classes
opencl_nvidia_101 and opencl_ati_101


svn path=/trunk/boinc/; revision=24345
2011-10-07 19:23:37 +00:00
David Anderson 3acc4fa77d - client/server: change field names in OPENCL_DEVICE_PROP
to match those in the clGetDeviceInfo() calls.
    Principles:
    - if there's already a name for something, use it.
    - follow case conventions


svn path=/trunk/boinc/; revision=24344
2011-10-07 18:11:52 +00:00
David Anderson ae3d5a85dd - scheduler: fix bug that caused scheduler to not send GPU jobs
svn path=/trunk/boinc/; revision=24338
2011-10-06 02:56:30 +00:00
David Anderson 49a7287949 - scheduler: in app_plan functions for GPUs,
use available RAM if reported by client;
    otherwise use physical RAM.


svn path=/trunk/boinc/; revision=24216
2011-09-15 04:28:21 +00:00
David Anderson 533b4b88e1 - scheduler: turns out we need separate vbox32 and vbox64
plan classes after all.
    Otherwise (since app_plan() is not passed an app version)
    there's no way to enforce that 64 bit hosts are sent
    only the 64 bit version (which is necessary because
    of the split-registry scheme).


svn path=/trunk/boinc/; revision=23935
2011-08-04 18:06:14 +00:00
David Anderson f3b9286d78 - client: fix bug in get_descendants(),
which prevented the client from cleaning up
    subprocesses of misbehaving multiprocess apps.
- remote job submission system:
    assign physical names to input files (based on their MD5)
    rather than having the user provide physical names
- VM apps: eliminate vbox64 plan class.  Only vbox.


svn path=/trunk/boinc/; revision=23923
2011-08-03 16:45:00 +00:00
David Anderson 3c70004c5c - server: debug distributed storage functions
- generate upload signatures if needed
    - assign deadlines to file xfer jobs (default 1 week)
    - scheduler: ack completed file xfer results


svn path=/trunk/boinc/; revision=23866
2011-07-20 22:27:01 +00:00
David Anderson 27e05a3da9 - server: some stuff to prepare for distributed storage
- don't create result records for uploads and downloads.
        Just create a msg_to_client record.
    - the scheduler handles file-transfer results specially;
        it makes a vector of them, then calls a project-supplied function
        handle_file_xfer_results()
    - change the interface and implementation of put_file and get_file
- client write project sched priority in GUI RPC replies,
    but not to the state file


svn path=/trunk/boinc/; revision=23857
2011-07-19 20:52:41 +00:00