Commit Graph

1716 Commits

Author SHA1 Message Date
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