Commit Graph

1864 Commits

Author SHA1 Message Date
David Anderson a9a2034a5c - assimilator: fix --one_pass bug (from Bernd)
svn path=/trunk/boinc/; revision=20627
2010-02-18 17:58:05 +00:00
David Anderson c00346b15c - db_dump: don't error out if try to rename output dir
and it doesn't exist.
    Seems to me that this would cause db_dump to always fail
    for new projects.

svn path=/trunk/boinc/; revision=20608
2010-02-17 18:09:10 +00:00
David Anderson 84701e3624 - scheduler: add example code for SETI@home's situation
where app has both GPU and CPU versions,
    but for certain jobs (VLAR WUs in this case)
    the GPU version performs poorly and shouldn't be used.

    The fix is a kludge - it will result in these jobs
    not being sent to the host at all,
    rather than being sent with the CPU app.
    The current architecture makes it difficult to do otherwise.
    One possible fix would be to create a separate app
    for VLAR jobs, with only CPU app versions.


svn path=/trunk/boinc/; revision=20419
2010-02-04 17:34:55 +00:00
David Anderson 78695969e4 - scheduler: don't send CUDA jobs to Macs with client < 6.10.28;
they'll crash.

svn path=/trunk/boinc/; revision=20360
2010-02-02 17:18:39 +00:00
David Anderson 67e438bc6b - transitioner: fix bug where WUs with error_mask <> 0 keep
transitioning every 10 days, hence never become eligible for purging.
    The problem: the transitioner has a "safety net" where,
    if the WU doesn't have a canonical result,
    it arranges for another transition in 10 days.
    Skip this if error_mask<>0.

svn path=/trunk/boinc/; revision=20265
2010-01-25 23:35:16 +00:00
David Anderson 6b3ea3d339 - user web: don't show "database error" if result refers
to deleted app version

svn path=/trunk/boinc/; revision=20251
2010-01-23 00:36:12 +00:00
David Anderson 974ea0469c - DB purge: allow fractional min_age_days (from Travis Desell)
svn path=/trunk/boinc/; revision=20250
2010-01-22 23:55:50 +00:00
David Anderson 956c955639 - scheduler: use COPROC_REQ instead of COPROC when parsing
anonymous-platform app versions.
    Otherwise fractional GPU requirements get truncated to zero.
    Thanks to Crunch3r for identifying the problem.
    

svn path=/trunk/boinc/; revision=20189
2010-01-18 19:22:03 +00:00
David Anderson 0c1a1421f8 - scheduler/feeder: if any client version number field
(min_core_version etc.) is < 10000,
    multiply it by 100 and print a warning.

svn path=/trunk/boinc/; revision=20187
2010-01-18 04:52:58 +00:00
David Anderson bbe7c2ea08 - scheduler: close DB connection on SIGTERM (from Bernd M.)
svn path=/trunk/boinc/; revision=20150
2010-01-13 18:40:43 +00:00
David Anderson 737952dbb5 - server: client version numbers are represented as
10000*major + 100*minor + release,
    rather than 100*major + minor.
    Sometimes you need release-level resolution.
    This affects:
    - app_version.min_core_version
    - config: min_core_client_version_announced
    - config: min_core_client_version
    Projects using these must multiply them by 100.

svn path=/trunk/boinc/; revision=20149
2010-01-13 17:28:59 +00:00
David Anderson ee343cea02 - client: small tweak to work fetch:
if project has crazy DCF, don't automatically request 1 sec;
    only request work if there's a shortfall.
- intermediate checkin for notices stuff

svn path=/trunk/boinc/; revision=20145
2010-01-12 21:53:40 +00:00
Bernd Machenschalk b207fe88fc - Limit the number of files to be deleted in one 'antique
deletion' pass to 50000 (can be changed with -delete_antiques_limit).
  Previously large number of antiques led to not deleting any at all.
- Allow to change the interval between passes with -delete_antiques_interval.

svn path=/trunk/boinc/; revision=20138
2010-01-12 12:31:23 +00:00
Bernd Machenschalk fbf3ca1450 a couple of locality scheduling fixes:
- remove obsolete and buggy code from transitioner (create_result() in backend_lib)
    - account for 'mixed' scheduling in explain_to_user() in sched_send.cpp
    - finish transition to configurable patterns for distinguishing files reported by the client
      in the Einstein@home-specific part of send_work_locality in sched_locality
      (removed previous hardcoded strcmps)

svn path=/trunk/boinc/; revision=20074
2010-01-05 11:03:10 +00:00
David Anderson 876522c6aa - client: add logic to work fetch so that each project
will have enough jobs to use its share of resource instances.
    This avoids situations where e.g. on a 2-CPU system
    a project has 75% resource share and 1 CPU job,
    and its STD increases without bound.
    
    Did a general cleanup of the logic for computing
    work request sizes (seconds and instances).

svn path=/trunk/boinc/; revision=20036
2009-12-24 20:40:27 +00:00
David Anderson 230dbbfe63 - scheduler: fix SQL injection vulnerability
svn path=/trunk/boinc/; revision=19997
2009-12-21 00:59:43 +00:00
David Anderson 9dceaa9c75 - scheduler: fix SQL injection vulnerability
svn path=/branches/server_stable/; revision=19996
2009-12-21 00:58:58 +00:00
David Anderson 746b75d0d0 - scheduler: use a more accurate way of estimating total FLOPS
and avg_ncpus for GPU apps.
    App versions are now characterized by two parameters
    (we assume that the app uses either the CPU or the GPU
    at a given time, but not both):
    - the fraction of FLOPs performed on the CPU
    - when the app is using the GPU, the fraction of peak FLOPS
        that it gets.
    We then run the numbers to get the total FLOPS and avg_ncpus.


svn path=/trunk/boinc/; revision=19977
2009-12-18 23:28:10 +00:00
David Anderson a151ad6cb3 - client/scheduler: deal with situation where GPU has enough
RAM to run job, but when we actually run the job
    not enough GPU RAM is free, so the application fails.
    This can cause a large number of jobs to fail.
    Solution:
    - app_plan() can specify the GPU RAM requirements of an app version.
        This is passed to the client in a new field
        <gpu_ram> of the <app_version> element.
    - prior to starting or restarting a GPU app, the client
        checks the amount of free RAM on the particular GPU.
        If it's not enough for the app version,
        the client doesn't start it,
        and arranges for the scheduler to ignore it for 5 minutes
        (by which point there might be more free GPU RAM)
    Notes:
    1) this change will have effect only when
        both client and scheduler are updated.
    2) the check is done in enforce_schedule(),
        rather than schedule_cpus(),
        because only at that point
        have we assigned a specific GPU to the job.
    3) there's another case to deal with:
        a GPU app's malloc of GPU RAM fails in the middle of the job.
        Currently the job fails.
        I plan to add an API call boinc_temporary_exit(x) so
        that the job can exit and potentially restart in x seconds.
        (In principle this mechanism is sufficient for all cases,
        but it could lead to a lot of starting/exiting,
        so the current change is worthwhile).

svn path=/trunk/boinc/; revision=19864
2009-12-11 22:45:59 +00:00
David Anderson e27659858d - result of code shuffle: the HOST_INFO structure returned
by the get_host_info() GUI RPC now contains GPU info

svn path=/trunk/boinc/; revision=19798
2009-12-07 06:13:17 +00:00
David Anderson 67bc7dfc9b - unix: build fixes
svn path=/trunk/boinc/; revision=19755
2009-12-01 17:04:28 +00:00
David Anderson da0ec737e7 - credit tweaks
svn path=/trunk/boinc/; revision=19582
2009-11-15 18:15:35 +00:00
David Anderson 56a8296b5b - scheduler: compute no_jobs_available correctly
in the presence of multiple scheduling types
    (e.g., locality and job array)
    From Nils Brause

svn path=/trunk/boinc/; revision=19559
2009-11-12 21:30:33 +00:00
David Anderson cadcc8c378 - tweaks to new credit simulator (from Kevin Reed)
svn path=/trunk/boinc/; revision=19546
2009-11-12 00:40:30 +00:00
David Anderson d10aae0647 svn path=/trunk/boinc/; revision=19545 2009-11-12 00:22:33 +00:00
David Anderson 1a6119e929 svn path=/trunk/boinc/; revision=19534 2009-11-10 23:39:51 +00:00
David Anderson 3f084596e0 - scheduler: fix bug that caused no ATI jobs to be sent
if max_jobs_in_progress defined.

svn path=/trunk/boinc/; revision=19529
2009-11-10 22:19:36 +00:00
David Anderson aebdd6a72b svn path=/trunk/boinc/; revision=19528 2009-11-10 21:03:50 +00:00
David Anderson 0b93f21caf - Progress on new credit system. Seems to work!
svn path=/trunk/boinc/; revision=19527
2009-11-10 21:00:29 +00:00
David Anderson 45aef88650 - scheduler: maintain WORK_REQ::no_jobs_available correctly
for locality scheduling
- client: avoid spurious error message when parsing
    <proxy_info> from cc_config.xml

svn path=/trunk/boinc/; revision=19524
2009-11-09 23:25:04 +00:00
David Anderson 305239f293 - credit: weight averages by PFC. Else in SETI@home,
a large number of short jobs makes the CUDA version
    look much less efficient than it actually is.

svn path=/trunk/boinc/; revision=19478
2009-11-05 17:17:13 +00:00
David Anderson a83b3fa3ba svn path=/trunk/boinc/; revision=19463 2009-11-04 23:04:07 +00:00
David Anderson 8caa2cf3d5 - test code for new credit system
svn path=/trunk/boinc/; revision=19462
2009-11-04 21:23:56 +00:00
David Anderson 545d137804 - client: no network activity if running CPU benchmarks
svn path=/trunk/boinc/; revision=19375
2009-10-23 21:57:58 +00:00
David Anderson fe2a18f282 - client/scheduler: standardize the FLOPS estimate between NVIDIA and ATI.
Make them both peak FLOPS,
    according to the formula supplied by the manufacturer.

    The impact on the client is minor:
    - the startup message describing the GPU
    - the weight of the resource type in computing long-term debt

    On the server, I changed the example app_plan() function
    to assume that app FLOPS is 20% of peak FLOPS
    (that's about what it is for SETI@home)

svn path=/trunk/boinc/; revision=19310
2009-10-16 00:13:01 +00:00
David Anderson d6efa7dabb - client: address the situation where GPUs become unusable
for certain periods (e.g. when Remote Desktop is used on Win).
    - add is_usable() member function to COPROC.
        Currently this just calls the respective (CUDA or CAL)
        initialization function.
        We need to check whether this works and/or causes problems.
    - in enforce_schedule(), check whether usability has changed
        for each GPU type.
        If we've gone from usable to unusable,
        flag all jobs for that GPU as coproc_missing
        (so they won't get run, and will quit if they're running).
        If we've gone from unusable to usable, clear the flag.
    This should deal with all cases except where
    the client is started up with GPUs unusable.
- scheduler: more query optimizations for locality scheduling
    (from Oliver Bock)

svn path=/trunk/boinc/; revision=19301
2009-10-14 18:07:49 +00:00
David Anderson 511a81a5fd - scheduler: improve efficiency of a locality sched query
svn path=/trunk/boinc/; revision=19295
2009-10-13 17:47:26 +00:00
David Anderson d5a41cba9c - scheduler/file upload handler: ignore zero-length cmdline args.
Apparently some Apaches pass them.
    From Nils Brause.

svn path=/trunk/boinc/; revision=19288
2009-10-12 16:44:26 +00:00
David Anderson 0e38392885 - scheduler: skip deadline check for non-CPU-intensive projects
svn path=/trunk/boinc/; revision=19273
2009-10-06 20:45:09 +00:00
David Anderson 8e51669769 - tweak to start
svn path=/trunk/boinc/; revision=19201
2009-09-28 16:19:20 +00:00
David Anderson 71c7e7a74b - client/scheduler/web: add per-project preferences for whether
to accept CPU, NVIDIA and ATI jobs.
    These prefs are shown only where relevant:
    e.g., only for processor types for which the project has app versions,
    and if it has versions for only one type, no pref is shown.

    These prefs affect both client and scheduler.
    The client won't ask for work for a device blocked by prefs,
    and the scheduler won't send it.

    This replaces earlier optional project-specific prefs for
    "no CPU jobs" and "no GPU jobs".
    (However, these prefs continue to be honored on the server side).

- client: if NVIDIA driver is unknown, say that rather than 0


svn path=/trunk/boinc/; revision=19194
2009-09-28 04:24:18 +00:00
David Anderson 62c1c4811b - scheduler: fix app_plan_uses_gpu()
svn path=/trunk/boinc/; revision=19172
2009-09-25 21:06:34 +00:00
David Anderson 67a42e0106 svn path=/trunk/boinc/; revision=19171 2009-09-25 20:59:13 +00:00
Rom Walton 2f61827ea0 - scheduler: setup priorites for the ATI plan classes
sched/
        sched_customize.cpp

svn path=/trunk/boinc/; revision=19169
2009-09-25 18:39:05 +00:00
David Anderson 348f6e6db8 - scheduler: fix app_plan() bug, improve ATI-related msgs
svn path=/trunk/boinc/; revision=19164
2009-09-25 16:35:43 +00:00
Rom Walton ad455ab09d - client: Add support for checking for both amd* prefixed CAL libraries
and ati* prefixed CAL libraries.
    - scheduler: redefine ati class plans again.
        ati: CAL 1.0+, amd* prefixed libraries
        ati13amd: CAL 1.3+, amd* prefixed libraries
        ati13ati: CAL 1.3+, ati* prefixed libraries
        ati14: CAL 1.4+, ati* prefixed libraries

    sched/
        sched_customize.cpp
    lib/
        coproc.cpp, .h

svn path=/trunk/boinc/; revision=19162
2009-09-25 15:40:16 +00:00
David Anderson cfcfeffd21 - client: for ATI enumeration, use only aticalrt.dll
(amdcalrt.dll is old version w/ funky DLL names)
- client: make GPU enumeration warnings more consistent
    (e.g., "NVIDIA" instead of "CUDA").
- scheduler: get rid of ati13 plan class.
    Require 1.4+ driver for plan class ati.

svn path=/trunk/boinc/; revision=19158
2009-09-24 18:33:40 +00:00
Rom Walton 9dd532b54e - scheduler: bug fix.
sched/
        sched_customize.cpp

svn path=/trunk/boinc/; revision=19150
2009-09-23 23:59:19 +00:00
David Anderson 9049f5fa14 - scheduler: change it to:
"ati" means CAL 1.2 or less (Catalyst 9.1 or less)
    "ati13" means CAL 1.3 or greater (Catalyst 9.2+)

svn path=/trunk/boinc/; revision=19149
2009-09-23 22:55:14 +00:00
David Anderson 2282c901d4 - scheduler: add a plan class "ati13186" for apps that require
CAL version 1.3.186 or greater.


svn path=/trunk/boinc/; revision=19148
2009-09-23 21:47:52 +00:00
David Anderson 6582b63cbc - client: extra debug msgs (remove when done)
svn path=/trunk/boinc/; revision=19130
2009-09-22 23:44:58 +00:00
David Anderson a0e657ff54 - scheduler: don't scale by #CPUs for non-CPU-intensive projects
svn path=/trunk/boinc/; revision=19122
2009-09-21 19:58:21 +00:00
David Anderson c2c52eba79 - Unix build fix
svn path=/trunk/boinc/; revision=19114
2009-09-21 16:15:28 +00:00
David Anderson 69f09b9384 - transitioner: fix to 15 Sept checkin
svn path=/trunk/boinc/; revision=19089
2009-09-18 15:59:40 +00:00
David Anderson 1c8af5232d - scheduler: add comments in sched_customize.cpp to say that
wu_is_infeasible_custom() can assign the resource usage
    and/or FLOPS estimate for a particular host.

svn path=/trunk/boinc/; revision=19083
2009-09-17 21:34:42 +00:00
David Anderson 76583d54d9 - client: don't print error message if output file with <copy_file>
attribute is missing.  That's the app's problem, not BOINC's
- sample assimilator: if a canonical instance has no output files,
    rather than quitting create a file named WU_NAME_no_output_files

svn path=/trunk/boinc/; revision=19082
2009-09-17 21:06:11 +00:00
David Anderson 75d2a45491 - server programs: add --help and --version cmdline options to all.
From Nils Chr. Brause.

svn path=/trunk/boinc/; revision=19079
2009-09-17 17:56:59 +00:00
David Anderson 814a8e4925 - transitioner: don't create more than max_total_results results
svn path=/trunk/boinc/; revision=19055
2009-09-16 04:35:42 +00:00
David Anderson 381a15c724 - create_work function and script:
check for valid ordering among max_success_results,
    max_total_results, max_error_results, and target_nresults

svn path=/trunk/boinc/; revision=19054
2009-09-16 03:10:22 +00:00
David Anderson ca98190642 - file deleter: fix bug where it retries errors infinitely;
also fix bug where non-existence of hierarchy dir
    is treated as a recoverable error

svn path=/trunk/boinc/; revision=19039
2009-09-10 21:24:39 +00:00
David Anderson 3bcaefd1d7 - web: show BOINC version in host displays
svn path=/trunk/boinc/; revision=19038
2009-09-10 20:30:46 +00:00
David Anderson 9d38ecb835 svn path=/trunk/boinc/; revision=19029 2009-09-08 19:30:06 +00:00
David Anderson bd8f1f20d1 svn path=/trunk/boinc/; revision=19012 2009-09-07 05:26:23 +00:00
David Anderson da7e82fe15 - scheduler and back end: add new fields to result table:
elapsed_time: the elapsed time (runtime) as reported by client
    flops_estimate: the app's estimated FLOPS as reported by app_plan()
    app_version_id: the DB ID of the app_version used
        (or -1 if anonymous platform)
    TODO: show these in the web interfaces,
    and use them where appropriate

svn path=/trunk/boinc/; revision=19002
2009-09-03 20:26:31 +00:00
David Anderson dd2bb6d4ba - scheduler: put client version in host.serialnum
- web: parse serialnum correctly

svn path=/trunk/boinc/; revision=18986
2009-09-02 15:18:15 +00:00
David Anderson 8b701fc73f - scheduler: fix messed-up deadline check logic.
Old:
        1) check deadline based on wu.delay_bound
        2) in add_result_to_reply(), potentially modify wu.delay_bound,
            e.g. because of retry acceleration
        problem: reducing delay bound may cause deadline miss
    New:
        1) new function get_delay_bound_range()
            (called from wu_is_infeasible_fast())
            returns optimistic and pessimistic delay bounds.
            Retry acceleration logic is here.
        2) check deadline based on optimistic bound;
            if that fails, check based on pessimistic bound.
            Set wu.delay_bound to the one that worked.
    Notes:
    - get_delay_bound_range() needs result priority and report deadline,
        and it's called before we read the full result.
        So add these items to WORK_ITEM and WU_RESULT.
    - get_delay_bound_range() could be customized for
        project-specific deadline policy.
    - add_result_to_reply() was becoming a toxic waste dump.
        Deadline-related stuff should have been factored out in any case.

svn path=/trunk/boinc/; revision=18946
2009-08-31 19:35:46 +00:00
David Anderson 2039e67638 - client: NVIDIA offers an API which tells you whether a GPU
is running a graphics application.
    Change the semantics of the "don't use GPU while computer in use" pref
    to "don't use a GPU that's running a graphics app while
    computer is in use".
    This will increase GPU utilization on multi-GPU systems.

svn path=/trunk/boinc/; revision=18942
2009-08-28 22:55:04 +00:00
David Anderson a49ba8c2e9 - scheduler: if request is anon platform,
write list of client's app versions to log

svn path=/trunk/boinc/; revision=18923
2009-08-26 18:21:36 +00:00
David Anderson 720ec66f28 - scheduler: fix CUDA RAM warning msg
svn path=/trunk/boinc/; revision=18922
2009-08-26 16:10:46 +00:00
David Anderson eafb410cf8 - scheduler: simplify and fix the way that app_plan() conveys messages
to the user.  app_plan() now generates the messages directly
    rather than returning integer error codes.

svn path=/trunk/boinc/; revision=18899
2009-08-21 20:38:39 +00:00
David Anderson 9e9f2a9878 - scheduler: code cleanup
svn path=/trunk/boinc/; revision=18896
2009-08-21 19:14:15 +00:00
Eric J. Korpela 208956257a - Moved credit.cpp into libboinc_sched where it should have gone in the first
place.
- Added a separate GPU memory requirement for the CUDA23 plan


svn path=/trunk/boinc/; revision=18887
2009-08-21 02:12:31 +00:00
David Anderson 073e6ded2c - client and scheduler: lay the groundwork for "fractional coproc jobs",
e.g. the Milkyway@home ATI app, of which we can typically run
    2 or 3 instances at once on a GPU.
    Changes include:
    - In APP_VERSION, don't use a COPROCS to represent the GPU
        requirements; just use doubles ncudas and natis.
    - sufficient_coprocs() etc. are no longer members of COPROCS
    - in HOST_USAGE, ncudas and natis are doubles
    - in scheduler request, req_instances is now a double

    This checkin doesn't include the job scheduling logic,
    i.e. assigning jobs to GPUs.  That will follow.

svn path=/trunk/boinc/; revision=18868
2009-08-19 18:41:47 +00:00
David Anderson 12d4b978be - scheduler: if client request uses a weak authenticator,
don't modify user preferences or CPID.
- client: fix bug that shows ATI version incorrectly
- database: host.posts has been repurposed as a salt (or seqno)
    for a new type of weak authenticator that won't depend on password
- web code:
    modify forum_preferences.posts instead of host.posts.
    (actually, the former isn't used either, we just do a select count(*);
    should fix this at some point).

svn path=/trunk/boinc/; revision=18865
2009-08-18 20:44:12 +00:00
David Anderson 7278ab1787 - scheduler: add support for ATI GPUs
svn path=/trunk/boinc/; revision=18851
2009-08-17 17:07:38 +00:00
David Anderson ca24bc3cb1 - scheduler: fixes for cuda23 plan class
svn path=/trunk/boinc/; revision=18841
2009-08-14 02:42:52 +00:00
David Anderson fb443e5c31 - compile fixes
svn path=/trunk/boinc/; revision=18832
2009-08-13 03:35:26 +00:00
David Anderson 3fb7c8f13f - server code: moved everything related to credit-granting to credit.cpp,
where it can be used by trickle handlers as well as by validators.

svn path=/trunk/boinc/; revision=18831
2009-08-12 16:26:43 +00:00
David Anderson 3eeefc0048 - server code cleanup
svn path=/trunk/boinc/; revision=18830
2009-08-12 16:01:46 +00:00
David Anderson f6d3e8a477 svn path=/trunk/boinc/; revision=18829 2009-08-11 15:17:37 +00:00
David Anderson a525453b5e - code shuffling
svn path=/trunk/boinc/; revision=18826
2009-08-10 04:56:46 +00:00
David Anderson b300519444 svn path=/trunk/boinc/; revision=18825 2009-08-10 04:49:02 +00:00
David Anderson 7484aeccf1 - validator: prepare for code cleanup
svn path=/trunk/boinc/; revision=18824
2009-08-10 04:22:02 +00:00
David Anderson f163897d8a - scheduler: add plan class for CUDA 2.3
svn path=/trunk/boinc/; revision=18804
2009-08-03 21:30:19 +00:00
David Anderson 786f61cfbe - file upload handler: don't treat zero-length file as an error!
(This bug has been there since 28 Oct 2004)
- GUI RPC and manager: include project backoff in FILE_TRANSFER,
    so that manager gets up-to-date value


svn path=/trunk/boinc/; revision=18786
2009-07-31 19:46:47 +00:00
David Anderson fa0c32c20e - scheduler: compile fixes
svn path=/trunk/boinc/; revision=18783
2009-07-30 17:00:43 +00:00
David Anderson e3363c7eb8 - scheduler: on second thought, it would be better to add the above
feature without requiring use of score-based scheduling.
    So add a new customizable function, wu_is_infeasible_custom(),
    where projects can put job-specific checks.

    Also, move customizable functions (of which there are now 4)
    to a new file, sched_customize.cpp.

svn path=/trunk/boinc/; revision=18767
2009-07-29 18:55:50 +00:00
David Anderson 77055d17e7 svn path=/trunk/boinc/; revision=18765 2009-07-29 18:34:27 +00:00
David Anderson 4c070e3bfb - scheduler: Gianni requested a feature where jobs have a
"min # of GPU processors" attribute (stored in batch)
    and are sent only to hosts whose GPUs have at least this #.

    The logical place for this is in the scoring function, JOB::get_score().
    I added a clause (#ifdef'd out) that does this.
    It rejects the WU if #procs is too small,
    otherwise it adds min/actual to the score.
    This favors sending jobs that need lots of procs to GPUs that have them.

svn path=/trunk/boinc/; revision=18764
2009-07-29 17:29:56 +00:00
David Anderson 37638081fa - scheduler: improved messages for debug_send
svn path=/trunk/boinc/; revision=18761
2009-07-28 23:07:11 +00:00
David Anderson 4222d744e8 - client (Linux): when launching apps, put a relative path
to the executable (../../projects/x/y) into argv[0],
    not just the executable filename.
    Apparently the new NVIDIA drivers have a bug that cause
    CUDA apps to crash unless this is done.
- Scheduler: in no-host-ID case, don't mark results as "detached"
    if request contains any in-progress results

svn path=/trunk/boinc/; revision=18754
2009-07-28 19:19:14 +00:00
Eric J. Korpela eb0dbd92a2 Fix for build of fcgi_file_upload_handler
svn path=/trunk/boinc/; revision=18739
2009-07-27 20:54:15 +00:00
David Anderson a4e82069d6 - client: add a bunch of debugging messages (<task_debug>)
for showing how GPU instances are being reserved
- scheduler: add "sse3" plan class example
- web: add option (NO_TEAMS constant) for suppressing teams

svn path=/trunk/boinc/; revision=18658
2009-07-22 18:41:02 +00:00
David Anderson 390e7b3c3a svn path=/trunk/boinc/; revision=18617 2009-07-17 16:13:51 +00:00
David Anderson 4338a5f856 - client: error if a <file_info> in app_info.xml has any URLs
- client: don't write file_infos with no URLs to client_state.xml
    for anon platform project; they must be from app_info.xml

svn path=/trunk/boinc/; revision=18592
2009-07-09 20:18:56 +00:00
David Anderson e4cae83866 - PyMW assimilator fixes from Jeremy
svn path=/trunk/boinc/; revision=18545
2009-07-01 23:58:04 +00:00
Rytis Slatkevičius f239587bdb Sched: config option not to store stderr_out if exit_status==0 (to save on DB size). With help from Nicolas Alvarez.
svn path=/trunk/boinc/; revision=18528
2009-06-30 18:00:58 +00:00
David Anderson a0c483f5e6 - make_project/upgrade: install pymw assimilator
- make pymw_assimilator.py executable


svn path=/trunk/boinc/; revision=18481
2009-06-22 22:20:35 +00:00
David Anderson a71a03f698 - Mac install: fix things a better way
- install: don't install internal .h files
- scheduler: fix spurious "reached limit of 0 GPU tasks" message,
    slight code cleanup

svn path=/trunk/boinc/; revision=18480
2009-06-22 21:11:19 +00:00
David Anderson 3824d359a3 - scheduler: fix <max_wus_in_progress> code
svn path=/trunk/boinc/; revision=18472
2009-06-19 18:34:00 +00:00
David Anderson 9527cb6534 - install: don't install std_fixes.h or msg_queue.cpp
- remove some unused code
- scheduler: small code cleanup

svn path=/trunk/boinc/; revision=18465
2009-06-19 17:21:34 +00:00
David Anderson 30e33d2b57 - pymw assimilator fixes from Jeremy
svn path=/trunk/boinc/; revision=18438
2009-06-16 20:56:43 +00:00
David Anderson 10f9e11ee6 - lib: created a new file for declaring "replacements"
for functions like strlcpy() etc.
    config.h is included here rather than in str_util.h


svn path=/trunk/boinc/; revision=18437
2009-06-16 20:54:44 +00:00
David Anderson 7e74f6971c - python assimilator fix
svn path=/trunk/boinc/; revision=18431
2009-06-16 19:38:35 +00:00
David Anderson 577f14ff49 - python scripts: fix bugs, restore latest version of "start"
svn path=/trunk/boinc/; revision=18424
2009-06-15 23:24:15 +00:00
David Anderson 311815e60a - server: backed out recent changes to "start"; they broke something
svn path=/trunk/boinc/; revision=18403
2009-06-12 22:25:22 +00:00
David Anderson cc47b6238f - server: improve the Python assimilator framework;
add an assimilator for PyMW (Python master/worker);
    remove old C++ PyMW assimilator
    (from Jeremy Cowles)

svn path=/trunk/boinc/; revision=18389
2009-06-12 03:06:01 +00:00
David Anderson 65d52137ec - server: Tools that should run by hand are installed under $(bindir).
Daemons that are managed by 'start' go to $(libexecdir)/sched.
    The (F)CGI stuff goes to $(libexecdir)/cgi-bin.
    Finally, example applications go under $(libexecdir)/examples.

svn path=/trunk/boinc/; revision=18378
2009-06-11 16:11:45 +00:00
David Anderson ae6b6f5d6f - server: 'start' now looks for programs to execute in $PATH,
so the same set of binaries can be used to handle multiple projects.
    <projectroot>/bin is always prepended to $PATH
    to ensure that project-specific binaries always take precedence.
    From Gabor Gombas.

svn path=/trunk/boinc/; revision=18377
2009-06-11 16:09:28 +00:00
David Anderson b7406ef57c - server: make the python code honor BOINC_PROJECT_PATH.
It is now possible to use the same set of tools for multiple
    projects by setting BOINC_PROJECT_PATH.
    From Gabor Gombas.

svn path=/trunk/boinc/; revision=18376
2009-06-11 16:06:25 +00:00
David Anderson 4cf6b7793c - server: move python modules from PROJECT/bin to PROJECT/py/Boinc.
make_project now generates PROJECT/bin/boinc_path_config.py
    to ensure that the interpreter will find the modules.
    From Gabor Gombas.

svn path=/trunk/boinc/; revision=18374
2009-06-11 15:38:48 +00:00
David Anderson 8a765c0f4a - file deleter: detect cases where the upload/download dir doesn't exist,
and treat it as a recoverable error (i.e., retry).
    The file deleter may run on a host that NSF-mounts
    the upload/download dirs, and NSF mounts can file.
- scheduler: include WU#ID in log msgs for handled results

svn path=/trunk/boinc/; revision=18351
2009-06-10 17:42:18 +00:00
David Anderson 0bf6ddb2fd - scheduler: improve example app plan function for multithread
svn path=/trunk/boinc/; revision=18315
2009-06-05 21:11:50 +00:00
David Anderson d39af2afd2 - client: add a 1e-6 slop factor in deciding if
a resource is fully utilized.


svn path=/trunk/boinc/; revision=18271
2009-06-02 23:26:12 +00:00
David Anderson 4e535a6804 - Updated Python assimilator (from Jeremy Cowles)
svn path=/trunk/boinc/; revision=18260
2009-06-02 05:20:46 +00:00
David Anderson cc62cce8f7 - client: if scheduler request didn't request work, don't report 0 tasks
- scheduler: fix crash if anonymous platform

svn path=/trunk/boinc/; revision=18259
2009-06-02 05:12:06 +00:00
David Anderson 8333c35c81 - feeder: process array slots even if enum has ended;
this is needed to handle stale entries and slots
    reserved by now-dead PIDs
- client: unify code for writing soft link files

svn path=/trunk/boinc/; revision=18256
2009-06-02 00:22:45 +00:00
David Anderson 2e5d9bd778 - scheduler: add new config option <max_wus_in_progress_gpus>.
The limit on jobs in progress is now
        max_wus_in_progress * NCPUS
        + max_wus_in_progress * NGPUS
    where NCPUS and NGPUS reflect prefs and are capped.
    Furthermore: if the client reports plan class for in-progress jobs
    (see checkin of 31 May 2009)
    then these limits are enforced separately;
    i.e. the # of in-progress CPU jobs is <= max_wus_in_progress*NCPUS,
    and the # of in-progress GPU jobs is <= max_wus_in_progress_gpu*NGPUS
- scheduler config: rename <cuda_multiplier> to <gpu_multiplier>
- scheduler: <max_wus_to_send> is now scaled by
    (NCPUS + gpu_multiplier*NGPUS)
- scheduler: don't keep scanning array if !work_needed()
- scheduler: moved array-scan logic from sched_send.cpp to sched_array.cpp
- scheduler: don't say "no work available" if jobs are available
    but work_needed() is initially false


svn path=/trunk/boinc/; revision=18255
2009-06-01 22:15:14 +00:00
David Anderson 270ef7594e - updated assimilator.py
svn path=/trunk/boinc/; revision=18246
2009-05-29 22:47:31 +00:00
David Anderson 3ff7a0d023 - scheduler: return better message if client has
too little GPU RAM, wrong driver version, etc.
    (tell them what the specific requirement is)

svn path=/trunk/boinc/; revision=18215
2009-05-28 16:37:26 +00:00
David Anderson d71179c758 - scheduler: enforce max_wus_to_send config parameter
for jobs being resent (as well as new jobs)


svn path=/trunk/boinc/; revision=18128
2009-05-15 21:12:46 +00:00
David Anderson c2fda4db09 - scheduler: add <report_max> config parameter;
limits the # of completed results handled per scheduler RPC.
    This may be needed to avoid crashes due to memory allocation
    failure (each reported result uses about 128KB memory).
- web: In showing result lists,
    include "Validate error" results in the "Invalid" category.
    (Previously they didn't appear in any category)

svn path=/trunk/boinc/; revision=18104
2009-05-14 19:01:40 +00:00
David Anderson e777d62672 - scheduler: the multiplier for both #jobs/day and #jobs in progress
is #CPUs + config.cuda_multiplier * #GPUs


svn path=/trunk/boinc/; revision=18085
2009-05-12 23:23:47 +00:00
David Anderson dfe290f150 - file deleter: improved log messages (from Bernd M)
svn path=/trunk/boinc/; revision=18084
2009-05-12 22:44:04 +00:00
David Anderson 12eb6057e5 - client, Mac: don't do res_init(). It causes a crash.
- client (Unix): if client crashes while benchmark processes are going,
    make sure they detect this and exit.
- back-end programs: remove hardwired assumptions about
    what directory they run in, and hence where config.xml is.
    E.g., daemons look for it in "..", others expect it in current dir.
    New approach: all the programs look for the project dir as follows:
    1) the environment var BOINC_PROJECT_DIR, if defined
    2) the current dir, if config.xml is there.
    3) else ".."
    This means you can run programs in either proj/bin/ or proj/,
    or (using BOINC_PROJECT_DIR) you can keep executables
    outside of the project dir.


svn path=/trunk/boinc/; revision=18042
2009-05-07 13:54:51 +00:00
David Anderson 6262401394 - feeder: add -appids option: lets you specify which apps to
get jobs for (default it all).
    Useful if you're mixing locality and regular scheduling.
- a little E@h-specific stuff
From Bernd Machenschalk.


svn path=/trunk/boinc/; revision=18039
2009-05-06 21:52:50 +00:00
David Anderson ad6a61a3a6 - sample bitwise validator: make it work for binary files
fixes #886, #887

svn path=/trunk/boinc/; revision=17966
2009-05-01 18:25:17 +00:00
David Anderson c2710be9f9 - removed outdated translation files; updated template
svn path=/trunk/boinc/; revision=17962
2009-05-01 17:05:12 +00:00
David Anderson e3a730c334 - client: add <use_all_gpus> config option. If set, use GPUs
even if they're not equivalent to the most capable one.
- Validator: fix one_pass_N_WU option.

svn path=/trunk/boinc/; revision=17896
2009-04-27 23:51:46 +00:00
David Anderson 5c23fb9f2a - db_purge: improve error-checking; if we're failing to write archives,
quit immediately so that we don't delete unarchived DB records

svn path=/trunk/boinc/; revision=17851
2009-04-21 03:25:26 +00:00
David Anderson 04fd1e4800 - web: improve the appearance of buttons
- web: divide the stylesheet into "main.css"
    (which has formatting stuff, rounded corners etc.)
    and "white.css" (which has colors).
    The above two from Simek.
- scheduler: change default min NVIDIA driver version
    from 17500 to 17700

svn path=/trunk/boinc/; revision=17819
2009-04-15 20:09:42 +00:00
David Anderson 47056a11f0 - improve msgs in file upload handler
svn path=/trunk/boinc/; revision=17659
2009-03-25 16:52:26 +00:00
David Anderson 84afd18450 - scheduler: move app-version selection and score-based scheduling
to new files.

svn path=/trunk/boinc/; revision=17630
2009-03-19 16:35:35 +00:00
David Anderson 04cdfe9cab - scheduler and web: add a project preference for whether to use the CPU.
This complements the "use GPU?" pref.
    Neither should be necessary, but what the heck.

svn path=/trunk/boinc/; revision=17628
2009-03-18 21:14:44 +00:00
David Anderson 31ea2eee98 - scheduler: app_plan() is not the right place to check for
"don't use GPU" pref; do it at a higher level


svn path=/trunk/boinc/; revision=17602
2009-03-16 23:22:54 +00:00
David Anderson 2135687990 - validator utilities: improvements to two_credit()
(used for deciding how much credit to grant
    when there are 2 valid results).
    From Kevin Reed

svn path=/trunk/boinc/; revision=17601
2009-03-16 23:12:20 +00:00
David Anderson 2eceda0180 - scheduler: in get_app_version() we check if our current best
app version is a CUDA app and we don't need more CUDA work.
    Need to do this for CPU as well.

svn path=/trunk/boinc/; revision=17598
2009-03-16 15:53:35 +00:00
David Anderson 76da7d8653 - scheduler: msg tweak
svn path=/trunk/boinc/; revision=17584
2009-03-10 21:34:49 +00:00
David Anderson 41ed82f791 - scheduler: fix bugs that caused only 1 job to be sent
svn path=/trunk/boinc/; revision=17555
2009-03-07 01:00:05 +00:00
David Anderson c22b62f25b - scheduler: fix bugs in support for anonymous platform + coprocs
(app versions don't have a <coprocs> around coproc elements,
    may an oversight but let's stick with it).
    Anyway, I think it's working now.
- lib: remove "owner" array from COPROC.
    This was used in client to keep track of assignment of
    coprocessors to tasks, but we got rid of the reserve/free scheme.
    NOTE: this breaks the mechanism for passing --device N to apps;
    I'll have to do this another way.  Stay tuned.

svn path=/trunk/boinc/; revision=17543
2009-03-06 22:21:47 +00:00
David Anderson 60789a105f - scheduler: message tweaks
svn path=/trunk/boinc/; revision=17520
2009-03-06 00:20:27 +00:00
David Anderson efbe5f616f - scheduler: move all send-work setup stuff (including messages)
into a function that's called before resend_lost_results()

svn path=/trunk/boinc/; revision=17515
2009-03-05 23:08:53 +00:00
David Anderson 012bf4c696 - scheduler: get work request parameters before resend_lost_jobs();
otherwise get NaNs for CPU fraction, etc.
- scheduler: show reasons in English when send job aborts


svn path=/trunk/boinc/; revision=17514
2009-03-05 22:12:21 +00:00
David Anderson 52d46f05d6 - scheduler: parse and return platform name in anon platform apps.
Otherwise, if an app version has a platform different from
    the client's primary platform, the client won't find it.


svn path=/trunk/boinc/; revision=17508
2009-03-05 17:54:39 +00:00
David Anderson e6f3027567 - scheduler: add support for anonymous-platform coproc apps.
Old: although the request message contained all info
        about the app version (flops, coproc usage etc.)
        the server ignored this info,
        and assumed that all anonymous platform apps where CPU.
        With 6.6 client, this could produce infinite work fetch:
        - client uses anon platform, has coproc app
        - client has idle CPU, requests CPU work
        - scheduler sends it jobs, thinking they will be done by CPU app
        - client asks for more work etc.
    New: scheduler parses full info on anon platform app versions:
        plan class, FLOPS, coprocs.
        It uses this info to make scheduling decisions;
        in particular, if the request is for CUDA work,
        if will only send jobs that use a CUDA app version.
        The <result> records it returns contain info
        (plan_class) that tells the client which app_version to use.
    This will work correctly even if the client has multiple app versions
    for the same app (e.g., a CPU version and a GPU version)


svn path=/trunk/boinc/; revision=17506
2009-03-05 17:30:10 +00:00
David Anderson 8544b20886 - client: reorganize and improve the logic for deciding
when to do a scheduler RPC:
    if user request or acct mgr request, ignore backoff and suspend via GUI;
    in all other cases honor both of these.

svn path=/trunk/boinc/; revision=17504
2009-03-05 00:10:16 +00:00
David Anderson 5cf568a180 - client: don't allow coproc apps in app_info.xml.
Otherwise we'll get stuck in a loop where the client asks for CPU work,
    and the scheduler sends jobs for what it thinks is a CPU app
    but is actually a coproc app.

    Eventually we should add coproc info to the app descriptions
    send in scheduler request,
    so that you can use anonymous platform for coproc apps.
    But let's wait on this.

- scheduler: compile fix for gcc 4.4.  Fixes #854

svn path=/trunk/boinc/; revision=17502
2009-03-04 22:12:16 +00:00
David Anderson d002f8eae1 svn path=/trunk/boinc/; revision=17447 2009-03-03 16:48:04 +00:00
David Anderson d8a60fbf37 - scheduler: don't need to set wreq->infeasible_only in send_work()
svn path=/trunk/boinc/; revision=17446
2009-03-03 16:46:47 +00:00
David Anderson 33d5a81cf6 - scheduler: add locality_scheduling arg to add_result_to_reply();
eliminate the need to diddle around with config.locality_scheduling.

svn path=/trunk/boinc/; revision=17445
2009-03-03 16:38:54 +00:00
David Anderson 66ec889431 - scheduler: add <locality_scheduling_sticky_file>
and <locality_scheduling_workunit_file> options
    From Bernd M.

svn path=/trunk/boinc/; revision=17431
2009-03-03 00:25:41 +00:00
David Anderson e36e700f22 svn path=/trunk/boinc/; revision=17430 2009-03-03 00:14:51 +00:00
David Anderson aadf813336 - scheduler/feeder: add <locality_scheduler_fraction> option;
lets you intermix locality and job-cache scheduling
    From Bernd M.

svn path=/trunk/boinc/; revision=17429
2009-03-03 00:12:55 +00:00
David Anderson 2d707927ab - scheduler: replace choose_download_url_by_timezone with
replace_download_url_by_timezone.


svn path=/trunk/boinc/; revision=17427
2009-03-02 23:47:11 +00:00
David Anderson dcc3bbe36f - scheduler: slight code cleanup
svn path=/trunk/boinc/; revision=17395
2009-02-26 03:03:35 +00:00
Eric J. Korpela 8f3abcc835 - Added checks for net/*.h, arpa/*.h, netinet/*.h and code to figure out
which of those files to include
    - Modified MAC address check to work on some non-Linux unixes.
      (mac_address.cpp)
    - Added suggested change to "already attached to project" checking.
      (ProjectInfoPage.cpp)
    - changed includes of standard c header files to their c++ equivalents
      (i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
    - replaced "using namespace std;" with more explicit "using std::function" in
      several files.
    - Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
      to the build environment. (boinc_platform.m4,configure.ac)
    - Changed build environment to not use -nostandardlibs unless we are using
      G++ and static linkage is specified. (configure.ac)
    - Added makefiles and package building files for solaris CSW package manager.
    - Fixed bug with attempting to find login name using logname. (configure.ac)
    - Added ifdef HAVE_* protection around some include files commonly found in
      sys.
    - Added support for unified binary for x86_64/i686-pc-solaris.
      (cs_platforms.cpp)
    - generate_host_cpid() now uses MAC address on non-linux unix.
      (hostinfo_network.cpp)
    - Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
      compilers. (boinc_set_compile_flags.m4)
    - Library compiles no longer depend upon the library extension or require
      the library to be prefixed with lib.
    - More fixes for fcgi builds.
    - Added declaration of "struct ether_addr" and ether_ntoa().  Have not yet
      implemented ether_ntoa() for machines that don't have it, or where it is
      buggy.  (unix_util.h)
    - Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
    - Fixed library Makefiles so that all required headers get installed.


svn path=/trunk/boinc/; revision=17388
2009-02-26 00:23:23 +00:00
David Anderson 20feef33f2 - fix possible crash on state file parse failures
svn path=/trunk/boinc/; revision=17371
2009-02-25 15:34:51 +00:00
David Anderson 65679139c5 - scheduler: make host.p_features available to app_plan()
svn path=/trunk/boinc/; revision=17307
2009-02-19 15:43:37 +00:00
David Anderson 15e9a87315 - client: add a debug flag <dcf_debug> for seeing changes in DCF
- scheduler: add a limit on NVIDIA driver version for CUDA apps
    (default 17500)

svn path=/trunk/boinc/; revision=17277
2009-02-17 03:16:25 +00:00
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