Commit Graph

1864 Commits

Author SHA1 Message Date
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
David Anderson 58cdf84551 - scheduler: in estimating job duration,
clamp running fraction to [.1, 1] and clamp DCF to [.1, 100]

svn path=/trunk/boinc/; revision=16722
2008-12-18 18:19:42 +00:00
David Anderson 765eefd18d svn path=/trunk/boinc/; revision=16715 2008-12-17 22:05:20 +00:00
David Anderson 90740c7690 - feeder: include all app versions that have maximal version num
within their plan class

svn path=/trunk/boinc/; revision=16714
2008-12-17 21:58:54 +00:00
David Anderson 8c965f2625 - scheduler: add some debugging msgs
svn path=/trunk/boinc/; revision=16711
2008-12-17 20:53:46 +00:00
David Anderson 4a65681176 - scheduler: if client has coprocs,
put a textual summary of them in host.serialnum (currently unused)
- web: show coprocs on host detail page
- db_dump: include coproc info in host XML

svn path=/trunk/boinc/; revision=16697
2008-12-16 18:46:28 +00:00
David Anderson ef52366c1b - web: fix bug that caused login to fail
- sched: more global vars

svn path=/trunk/boinc/; revision=16695
2008-12-16 16:29:54 +00:00
David Anderson 41498a6840 - scheduler: fix typo; enforce 256MB CUDA memory limit
svn path=/trunk/boinc/; revision=16693
2008-12-15 23:35:40 +00:00
David Anderson ef3c9c7444 - scheduler: add --help option
svn path=/trunk/boinc/; revision=16692
2008-12-15 22:56:08 +00:00
David Anderson 49a69de194 - scheduler: estimate job durations based on the FLOPS estimate
for the selected APP_VERSION, rather than on the CPU benchmarks.
    Otherwise estimates are wrong for GPU or multi-thread apps.
- scheduler: start switching from having SCHED_REQUEST and
    SCHED_REPLY as globals instead of passing them around as args;
    to be continued.

svn path=/trunk/boinc/; revision=16691
2008-12-15 21:14:32 +00:00
David Anderson 14f6f9a386 - scheduler: add <ignore_dcf> option;
use this temporarily when you've fixed FLOPS estimate


svn path=/trunk/boinc/; revision=16672
2008-12-12 17:03:54 +00:00
David Anderson 603c58ce7d - scheduler: in sample code for CUDA, require 256MB RAM
svn path=/trunk/boinc/; revision=16668
2008-12-10 19:14:13 +00:00
David Anderson e3807a8386 - scheduler: estimate CUDA device speed based on clock rate an #MP
- web: close table in WU page
- web: fix PHP error in translation script

svn path=/trunk/boinc/; revision=16648
2008-12-08 19:39:19 +00:00
David Anderson 79fb6e969e - Remove the notion of "CPU efficiency" from both client and server.
This wasn't being measured correctly for coproc/multithread apps,
    and its effect is now subsumed in DCF.

svn path=/trunk/boinc/; revision=16610
2008-12-03 19:50:06 +00:00
David Anderson 8ea8081626 - scheduler: fix memory leak when reporting time stats logs
- scheduler: fix egregious bug where wu_is_infeasible_fast() result
    is ignored, and we send jobs to hosts that can't handle them.
- scheduler: don't check for disk space in work_needed();
    do it in check_disk(), which generates a message to user.
- scheduler: add -debug_log flag, which sends stderr to
    "debug_log" rather than scheduler_log.txt (for debugging)

svn path=/trunk/boinc/; revision=16578
2008-11-26 21:49:36 +00:00
David Anderson f8ed8163d2 - server: sleep intervals are integers
svn path=/trunk/boinc/; revision=16577
2008-11-26 20:37:11 +00:00
David Anderson 07bd768e9d - server: add -sleep_interval args to file_deleter and transitioner
(from Nicolas; fixes #783)


svn path=/trunk/boinc/; revision=16576
2008-11-26 19:09:27 +00:00
David Anderson ae826ef2eb - API: remove debugging printf from trickly down code
- API: use non-verbose option to zip
- scheduler: if multiple_client_per_host is set,
    don't mark results as over if get repeat CPID

svn path=/trunk/boinc/; revision=16445
2008-11-07 04:13:08 +00:00
David Anderson 5ac0aee6ce - client: add OS name into the hash for host CPID
(for multi-OS hosts)
- scheduler: use sqrt(x) instead of x in stop-checking
    for single redundancy.

svn path=/trunk/boinc/; revision=16433
2008-11-05 20:27:04 +00:00
David Anderson 970dc25474 - fix makefile typo
- fix scheduler error (can't end with \n)


svn path=/trunk/boinc/; revision=16419
2008-11-04 20:44:44 +00:00
David Anderson ae95ae0527 - file_deleter: add -input_files_only and -output_files_only options.
If you store input and output files on different servers,
    you can run 2 file_deleters, each one on the same machine
    as the files it's going to be deleting.
- file_deleter: add -help option and usage()

client/
    cpu_sched.cpp
    sched/
        file_deleter.cpp

svn path=/trunk/boinc/; revision=16397
2008-11-03 22:56:16 +00:00
David Anderson 15b58e582d - client, scheduler: there were a few places where we had 1e9
instead of 1 gig (2^20)


svn path=/trunk/boinc/; revision=16387
2008-11-01 23:13:55 +00:00
David Anderson 2d1d47de15 - client: move round-robin simulation to its own file
- web: check for profile existence before trying to show it
- file deleter: add some debugging msgs

svn path=/trunk/boinc/; revision=16338
2008-10-28 21:59:25 +00:00
David Anderson be4cd9bb79 - scheduler: notify user if we're not sending work
because we don't have any (matchmaker only).
- back end programs: for programs that do enumerations,
    check for error returns and exit
    (otherwise we'll get stuck forever if DB fails)

NOTE: In the course of researching this I came across a bug
in the transitioner: if there's a WU with more than 1000 results,
the enumeration will always return ERR_DB_NOT_FOUND,
and the transitioner won't ever do anything again.
Fixing this is a little tricky, so I'm not going to do it right now.


svn path=/trunk/boinc/; revision=16324
2008-10-27 21:23:07 +00:00
David Anderson 5039207e2c - scheduler: add <have_cuda_apps> config flag.
If set the "effective NCPUS" (which is used to scale
    daily_result_quota and max_wus_in_progress)
    is max'd with the # of CUDA GPUs.

svn path=/trunk/boinc/; revision=16246
2008-10-21 23:16:07 +00:00
David Anderson e43e8a408d - client: major changes to enforce_schedule() to handle GPUs
svn path=/trunk/boinc/; revision=16178
2008-10-09 22:44:45 +00:00
David Anderson ebe3b090e8 - add a script "upgrade_db.php" that updates project DB structure
(after user confirmation).
    This is called from "upgrade", and can also be run by itself.

    NOTE: this mechanism will handle all DB updates going forward.
    Older updates must be done the old way (edit and run db_update.php)

- Web: let teams determine whether they're accepting new members


svn path=/trunk/boinc/; revision=16160
2008-10-08 16:48:11 +00:00
David Anderson 56c203a9a2 - added a script (from Nicolas) to generate en.po
svn path=/trunk/boinc/; revision=16151
2008-10-07 20:24:16 +00:00
David Anderson 33ad1b3d40 - Added the above DB change to schema.sql
- Omit the "after" clause from update.
- Web: add missing arg; fixes #749
- server: more --help additions

svn path=/trunk/boinc/; revision=16136
2008-10-06 00:18:36 +00:00
David Anderson f17c0879de - changed some comments for Doxygen
svn path=/trunk/boinc/; revision=16130
2008-10-04 23:44:24 +00:00
David Anderson a31c5d9e98 - Manager: show resource requirements of all jobs, running or not
- Back-end programs: start adding --help option to all of them

svn path=/trunk/boinc/; revision=16121
2008-10-03 19:31:56 +00:00
David Anderson 49bb779fb0 - scheduler: add a \n after projects_files.xml, in case it doesn't have one
svn path=/trunk/boinc/; revision=16113
2008-10-02 19:16:09 +00:00
David Anderson 59184caaa9 - scheduler: FCGI: use mysql_ping() to check that DB connection
is still alive before handling a request.  If not, try to reconnect.
    This will hopefully make things work better if MySQL goes down and up
    when using FCGI.

svn path=/trunk/boinc/; revision=16112
2008-10-02 19:03:52 +00:00
David Anderson d973bcac15 - scheduler: move core_client_version from WORK_REQ to SCHEDULER_REQUEST;
WORK_REQ doesn't get initialized in all cases.

svn path=/trunk/boinc/; revision=16107
2008-10-01 22:07:35 +00:00
David Anderson 632587c3b4 - scheduler: enforce max_wus_to_end, daily_result_quota,
and max_wus_in_progress when using score-based scheduling

svn path=/trunk/boinc/; revision=16106
2008-10-01 20:58:28 +00:00
David Anderson bb9d546a02 - scheduler: add <no_vista_sandbox> option.
If set, don't send work to sandboxed Vista clients
    (e.g., because of CUDA issue)

svn path=/trunk/boinc/; revision=16105
2008-10-01 19:48:52 +00:00
David Anderson 57b92fb40a - scheduler: #ifdef'd tweaks for server simulator
svn path=/trunk/boinc/; revision=16097
2008-09-30 18:21:41 +00:00
David Anderson 98cfb8d3b0 - rename .C files to .cpp so that Doxygen will work
svn path=/trunk/boinc/; revision=16069
2008-09-26 18:20:24 +00:00
David Anderson 0f8f9f3dab - API: in boinc_exit(), release the lockfile only if
we're the main program (otherwise we didn't lock it in
    the first place, and a crash results).  From Artyom Sharov.
- scheduler: add support for the GCL simulator,
    which uses special versions of backend programs
    that use virtual time,
    and that wait for signals instead of sleep()ing.

    To compile:
        make clean
        configure CXXFLAGS="-DGCL_SIMULATOR"
        make

svn path=/trunk/boinc/; revision=16036
2008-09-22 17:52:41 +00:00
David Anderson 8248896bc9 - typo
svn path=/trunk/boinc/; revision=16017
2008-09-18 12:01:50 +00:00
David Anderson 4ad5249bf2 - scheduler: various bug fixes in score-based schedule;
get rid of no_darwin_6 option


svn path=/trunk/boinc/; revision=16015
2008-09-17 23:35:16 +00:00
David Anderson 750fe8795a - back end programs: optional BOINC_CONFIG_XML environment variable
specifies path of config file (default: ../config.xml)

svn path=/trunk/boinc/; revision=16011
2008-09-17 21:14:47 +00:00
Eric J. Korpela 9d91ac8428 Fix typo.
svn path=/trunk/boinc/; revision=16009
2008-09-17 17:20:02 +00:00
David Anderson 6379b2682b - feeder: fix bug from changset 15984 that changed "r" to "w",
causing the feeder to truncate hr_info.txt on startup


svn path=/trunk/boinc/; revision=16008
2008-09-17 15:59:14 +00:00
David Anderson fd3dbc1058 - client: ignore CUDA devices with major versions > 100
(apparently some report 9999)
- web: security changes: sanitize some params; escape some strings

svn path=/trunk/boinc/; revision=16005
2008-09-16 23:06:37 +00:00
Eric J. Korpela 40e243412d - Fixed fcgi builds to use an installed version of fcgi_stdio.h rather than
a modified boinc version.
    - Added new header "boinc_fcgi.h" to be used instead of "fcgi_stdio.h".
      This header defines I/O functions in the namespace FCGI rather than using
      redefined functions the way "fcgi_stdio.h" does.  This was causing a lot
      of headaches when both <cstdio> and "fcgi_stdio.h" was called.  Using
      overloaded functions fixes this problem, except when the only difference
      between functions is the return type (for example ::fopen() returns FILE*
      and FCGI::fopen() returns FCGI_FILE*).
    - Fixed some missing "#ifdef _WIN32" blocks in filesys.C



svn path=/trunk/boinc/; revision=15984
2008-09-09 19:10:42 +00:00
David Anderson cc7d507789 - DB interface: in update(), check that 1 row was updated
- API: in APP_INIT_DATA, enclose project preferences in tags
    so that it's legal XML
- scheduler: add <multiple_clients_per_host> option.
    Use this if your project runs on Condor or grids
    and (to use multicore machines) you're running
    multiple clients per host.
    This will skip the host lookup based on IP address.


svn path=/trunk/boinc/; revision=15954
2008-09-04 08:33:21 +00:00
David Anderson ca00559575 - client (Unix): don't assume that LD_LIBRARY_PATH is defined
svn path=/trunk/boinc/; revision=15944
2008-08-28 18:41:18 +00:00
David Anderson 1013cf02c5 - validator: add a global variable WORKUNIT* g_wup;
that points to the workunit being processed;
    you can use this in your init_result(), compare_result() etc.
    if you need it.

svn path=/trunk/boinc/; revision=15919
2008-08-21 20:58:32 +00:00
David Anderson 53ccd10f13 - scheduler: add <debug_resend> config option to enable messages
about job resending

svn path=/trunk/boinc/; revision=15889
2008-08-19 03:00:17 +00:00
David Anderson 6869242f75 - scheduler: fixed bug that caused spurious messages
saying "no work was available for the apps you requested"
    with locality scheduling (i.e. Einstein@home)
    even if the user hasn't select apps.

    Note: the logic for printing these messages won't work
    for matchmaker scheduling.

svn path=/trunk/boinc/; revision=15847
2008-08-14 22:06:51 +00:00
David Anderson 104655a358 - client and server: add "len" arg to xml_escape() and xml_unescape()
(prevent buffer overrun).
    Also remove 1024 char limit for team description in db_dump.

svn path=/trunk/boinc/; revision=15820
2008-08-13 17:27:13 +00:00
David Anderson 6337181571 - scheduler: don't send jobs for "hard apps" (weight==-1)
to hosts with total_credit=0
- client: add a buffer size check

svn path=/trunk/boinc/; revision=15809
2008-08-12 19:06:35 +00:00
David Anderson ee56ea3341 - validator: get_credit_from_wu() returns an error, rather than exiting,
if WU doesn't have <credit> element

svn path=/trunk/boinc/; revision=15777
2008-08-07 22:50:05 +00:00
David Anderson 896bdb2e23 - web: improve white.css, and make corresponding PHP changes
(mostly from Simek)
    fixes #716
- validator: tweak the way host error rate is computed,
    e.g. on error bump rate by .1 instead of .05

svn path=/trunk/boinc/; revision=15771
2008-08-07 20:43:52 +00:00
David Anderson b5b3fd43b7 - scheduler: make credit_multiplier stuff conditional on
<use_credit_multiplier> flag in config.xml

svn path=/trunk/boinc/; revision=15766
2008-08-06 23:30:22 +00:00
David Anderson 91ca306e80 - scheduler: fix bug that caused jobs to be sent to clients
using anonymous platform
    even if they don't have the necessary app version.
    Also, send an explanatory message in this case.
    fixes #713


svn path=/trunk/boinc/; revision=15765
2008-08-06 22:08:47 +00:00
David Anderson 9b671b8f10 - file_deleter: add -delete_antiques_now options
svn path=/trunk/boinc/; revision=15763
2008-08-06 20:31:48 +00:00
David Anderson 4f66bb4c95 - added copyright and license info to .C, .cpp, .h files
- scheduler: fix bug in adaptive replication:
    if send an unreplicated job to untrusted host,
    set both wu.target_nresults and wu.min_quorum to app.target_nresults.

svn path=/trunk/boinc/; revision=15762
2008-08-06 18:36:30 +00:00
David Anderson 1c139a5523 - XML parsing: when parsing int/double/bool and fail to find end tag,
don't modify the reference arg.
- scheduler: improved messages for preferences

svn path=/trunk/boinc/; revision=15757
2008-08-05 21:43:52 +00:00
David Anderson 6db22d8c0c - web: stylesheet fixes
fixes #708
- sched: slightly revise Bruce's fix


svn path=/trunk/boinc/; revision=15753
2008-08-05 15:06:42 +00:00
Bruce Allen 349f27a39e scheduler: in resending lost results, must copy core
client version.  David -- this can probably be done
better and might indicate that some other info is not
being properly copied.  Please review and fix if needed.
Before this fix, scheduler was complaining about
outdated core clients version 0 < min needed core 413.

tools for scheduler logging: change cgi.log.X to scheduler.log.X
in script that creates on-line logs for users to read
to help diagnose problems.

svn path=/trunk/boinc/; revision=15751
2008-08-04 23:30:37 +00:00
David Anderson 55c6b2fc64 - scheduler: added a debug msg for anonymous platform
svn path=/trunk/boinc/; revision=15749
2008-08-04 18:48:26 +00:00
David Anderson 95fdff2fd3 - server: add assimilator for Python Master/Worker system,
and change setup script to copy its files

svn path=/trunk/boinc/; revision=15702
2008-07-28 22:56:39 +00:00
David Anderson 283a785c0f - back-end stuff to support Python MW (from Adam Kornafeld)
Not complete.

svn path=/trunk/boinc/; revision=15679
2008-07-25 22:13:41 +00:00
Eric J. Korpela a5a6f693cd - Implementation of automatic credit leveling for cpu based projects that
wish to use it.
- The script calculate_credit_multiplier (expected to be run daily as
      a config.xml task) looks at the ratio of granted credit to CPU time 
      for recent results for each app.  Multiplier is calculated to cause 
      median hosts granted credit per cpu second to equal to equal that 
      expected from its benchmarks.  This is 30-day exponentially averaged 
      with the previous value of the multplier and stored in the table 
      credit_multplier.
- When a result is received the server adjusts claimed credit by the
      value the multiplier had when the result was sent.


svn path=/trunk/boinc/; revision=15661
2008-07-22 23:36:55 +00:00
Adam Kornafeld 7b667b4693 Assimilator program for pymw
svn path=/workspaces/kadam/; revision=15658
2008-07-22 21:26:36 +00:00
David Anderson 007b3ba9dd - server compile fix for gcc 4.3
svn path=/trunk/boinc/; revision=15647
2008-07-21 22:29:10 +00:00
David Anderson a227801dd8 - scheduler: in matchmaker scheduler, if find a "locked" array slot,
which whether we're the process that locked it (from Artyom Sharov)

svn path=/trunk/boinc/; revision=15630
2008-07-17 20:58:42 +00:00
David Anderson a6cf172fb0 - scheduler: fix logic to not send plan-class apps to clients
that don't know about plan class

svn path=/trunk/boinc/; revision=15609
2008-07-16 04:25:11 +00:00
David Anderson fa0dbd20c7 - scheduler: with matchmaker scheduling, avoid infinite loop
if result not in DB
    (from Artyom Sharov, DerMeister)

svn path=/trunk/boinc/; revision=15608
2008-07-15 22:44:36 +00:00
David Anderson 8c41a07992 - scheduler: Add a notion of "hard app" for SETI@home.
If an app is hard, the scheduler always does the deadline check,
    even if the client has no other jobs for this project.
    And the estimated wallclock duration is multiplied by 1.3,
    to avoid sending jobs to hosts that will barely make the deadline.

    Hard apps are marked by setting weight = -1.
    This is a total kludge, to avoid adding another field to app.

svn path=/trunk/boinc/; revision=15607
2008-07-15 21:43:45 +00:00
David Anderson ba6526f8c9 - scheduler: add constructor for HOST_USAGE structure
(otherwise get random crap in cmdline)


svn path=/trunk/boinc/; revision=15605
2008-07-14 22:32:20 +00:00
David Anderson 2a5a53c484 - scheduler: fix infinite loop in matchmaker sched (from Artyom Sharov)
svn path=/trunk/boinc/; revision=15603
2008-07-14 20:25:41 +00:00
David Anderson 1147e60b1a - web: fix bugs that cause backslashes to be introduced
in global prefs update via account manager RPC

svn path=/trunk/boinc/; revision=15602
2008-07-14 19:13:19 +00:00
David Anderson 234234569b - Improvements to single-job submission:
1) the assimilator creates a job_summary_WUID file saying
        - what host did the job
        - error status if any
        - info about missing output files
    2) all output files are now optional.
    3) the assimilator deletes temp files (templates, job dir file)

svn path=/trunk/boinc/; revision=15551
2008-07-04 19:41:58 +00:00
David Anderson c478b9f9e0 - client and server: the client includes global_prefs.xml
in scheduler request messages, without checking its contents.
    One user had apparently edited global_prefs.xml with an XML editor;
    it had an <?xml tag at the start,
    and had been collapsed into a single line with no newlines,
    and no newline at the end.
    This caused all scheduler requests from that client to get
    "Incomplete request" responses.

    The long-term fix is for the client to verify global_prefs.xml,
    and for the scheduler to parse it with XML_PARSER.
    As a short-term fix, I made these changes:
    - If the scheduler reads a line that's too long, it ignores it.
    - The scheduler ignores <?xml

svn path=/trunk/boinc/; revision=15543
2008-07-02 23:19:44 +00:00
David Anderson 16b1305db7 - server code: at some point I made a global var "SCHED_CONFIG config",
mostly so that the parse function could assume
    that everything was initially zero.
    However, various back-end functions pass around SCHED_CONFIG&
    as an argument (also named "config").
    This creates a shadow, which is always bad.
    Worse is the possibility that some projects have back-end programs
    that have a SCHED_CONFIG variable that's automatic,
    and therefore isn't zero initially,
    and therefore isn't parsing correctly.

    To fix this, I changed the 2 vectors in SCHED_CONFIG into pointers,
    and have the parse routine zero the structure.
    I was tempted to remove the SCHED_CONFIG& args to back-end functions,
    but this would have broken some projects' code.
    I did, however, change the name from config to config_loc
    to avoid shadowing.

    Also fixed various other compiler warnings.

svn path=/trunk/boinc/; revision=15541
2008-07-02 17:24:53 +00:00
David Anderson 0c5c51d531 - web: when hide/unhide/delete posts,
set the timestamp of the thread to the timetamp of
    the latest non-hidden post (rather than to now).
    Same thing for forum timestamp.
- scheduler: return more informative message to user in case of
    request message parse error

svn path=/trunk/boinc/; revision=15526
2008-07-01 16:34:51 +00:00
David Anderson 0f60f0d42b - scheduler: fix bug where a pointer to a 32-bit time field
was being cast to a pointer to 64-bit time field
    (this caused wrong results on 64-bit servers)
    From Sharov Artyom.

svn path=/trunk/boinc/; revision=15517
2008-06-30 23:05:16 +00:00
David Anderson cff13c8871 - server: add optional <no_validate> element to output file <file_ref>s.
This tells the sample bitwise validator to ignore this file.
- client: parse the above field (avoid "unparsed XML" msgs)

svn path=/trunk/boinc/; revision=15514
2008-06-30 16:46:05 +00:00
David Anderson 848a8041aa - back-end code: fix compiler warnings (and maybe bugs);
to some retentive code cleanup


svn path=/trunk/boinc/; revision=15497
2008-06-26 21:20:07 +00:00
David Anderson e88e698106 - scheduler: change message if bad auth (fixes #685)
svn path=/trunk/boinc/; revision=15445
2008-06-22 19:14:53 +00:00
David Anderson 796a8ef835 - change EXIT_ABORTED_VIA_GUI to EXIT_ABORTED_BY_CLIENT
- change ERR_CHILD_FAILED TO EXIT_CHILD_FAILED
    (it's an exit code, not a function error code)
- client: reduce severity of benchmark error
- scheduler: compile fix

svn path=/trunk/boinc/; revision=15423
2008-06-18 16:43:05 +00:00
David Anderson b8f17039b4 svn path=/trunk/boinc/; revision=15410 2008-06-17 16:15:39 +00:00
David Anderson d737c428ff - scheduler: if host.n_bwdown is zero, skip the bandwidth check;
the host hasn't been measured yet.

svn path=/trunk/boinc/; revision=15409
2008-06-17 16:09:27 +00:00
David Anderson f0bd46e2c1 - web: change order of includes
svn path=/trunk/boinc/; revision=15381
2008-06-10 18:12:29 +00:00
David Anderson 4387e4491b - Fix emacs mode line in Makefile.am's
svn path=/trunk/boinc/; revision=15375
2008-06-08 22:18:52 +00:00
David Anderson 0e03df254b - Back end: add adaptive validation feature
(DB update required)
- Fixed typo in Eric's 5/28 checkin

svn path=/trunk/boinc/; revision=15357
2008-06-04 23:04:12 +00:00
David Anderson f0fc96196f - validator/assimilator: get_output_file_info()
was looking at the wrong XML field

svn path=/trunk/boinc/; revision=15350
2008-06-02 20:06:54 +00:00
David Anderson 96eabc043b - server: added -simulation option to feeder, validator, and assimilator
(for use in server simulator)

svn path=/trunk/boinc/; revision=15344
2008-06-01 03:43:47 +00:00
David Anderson c9d38091e7 - validator/assimilator: parse <file_ref>s rather than <file_info>s;
the latter is where the <optional/> flag is.

svn path=/trunk/boinc/; revision=15337
2008-05-30 03:29:31 +00:00
David Anderson 97239eb35c - Redo the above so that get_output_file_path() is unchanged;
add new functions get_output_file_info();
- change get_output_file_path() to look at the result's
    xml_doc_in rather than its xml_doc_out;
    this is the one that will have <optional/>
- fix crashing bug in the above

svn path=/trunk/boinc/; revision=15334
2008-05-29 21:54:18 +00:00
David Anderson ebfb1e8e3b - Validator framework: change get_output_file_path()
to return a struct FILE_INFO (including "optional")
    instead of just the filename.
    This lets you avoid erroring out if optional file is missing.
- Sample bitwise validator: support > 1 output file correctly

svn path=/trunk/boinc/; revision=15332
2008-05-29 20:11:43 +00:00
Eric J. Korpela 1f2d65bccb - Makefiles:
added client/scripts to default client build
    removed sea from the default clientgui build
    added locale/client to the default clientgui build
    moved installed headers from $(includedir) to $(pkgincludedir) which
       is $(includedir)/boinc by default.
    removed redefinitions of $(includedir) from Makefiles.
- configure:
    added locale/client/Makefile to AC_CONFIG_FILES


svn path=/trunk/boinc/; revision=15300
2008-05-28 01:38:39 +00:00
David Anderson 49eb1246cf - scheduler: added
- config option <matchmaker> for matchmaker scheduling
    - config options <mm_min_slots>, <mm_max_slots>, <job_size_matching>
        to control matchmaker scheduling
- scheduler: tweaks to matchmaker scheduling from Kevin Reed
- web: fixes to alternative stylesheet from Simek

svn path=/trunk/boinc/; revision=15281
2008-05-23 16:13:30 +00:00
David Anderson a1ab573857 - scheduler: if client has bad code sign key, don't send work
svn path=/trunk/boinc/; revision=15270
2008-05-21 22:33:21 +00:00
David Anderson c25344e343 - fix FCGI compile
svn path=/trunk/boinc/; revision=15265
2008-05-20 22:36:43 +00:00
David Anderson 586c07e3b4 - Add alternative stylesheet for project web
- Tweak error messages in client and server

svn path=/trunk/boinc/; revision=15263
2008-05-20 21:47:02 +00:00
David Anderson a493d5f9ba - scheduler: there were several situations where the scheduler
would send a reply without having looked up the user and team
    in the DB; e.g.:
    - client version# is too low
    - DB is down
    - host is blacklisted
    It would then send a full scheduler reply,
    including a blank team name and other missing info.
    
    Fix this by setting reply.nucleus_only initially
    (this causes a minimal reply to be sent)
    and clearing it only if the host/user/team lookup succeeds.
    Fixes #417, #633 (I think)

svn path=/trunk/boinc/; revision=15232
2008-05-16 00:14:48 +00:00
David Anderson 9e392c2c46 - validator: canonical_credit was being set incorrectly
when -max_granted_credit used.

svn path=/trunk/boinc/; revision=15196
2008-05-13 22:08:52 +00:00