Commit Graph

111 Commits

Author SHA1 Message Date
David Anderson fb851311e0 - server: various changes;
see http://boinc.berkeley.edu/trac/wiki/CreditNew

    Projects will need to update DB and recompile all back-end programs.

    Summary:
    - new way of computing credit
    - "reliable host" mechanism is per app version
    - "host punishment" mechanism is per app version
    - adjustment of wu.rsc_fpops_est provides the
        equivalent of per app version DCF
    - max jobs in progress is now per app
    - max jobs per RPC is now per app

    TODO:
    - reliable mechanism:
        - populate and use host_app_version.error_rate
        - populate host_app_version.turnaround
    - host punishment:
        - populate host_app_version.max_jobs_per_day
        - populate host_app_version.n_jobs_today
        - use app.max_jobs_per_day_init
    - job limits:
        - use app.max_jobs_in_progress, max_gpu_jobs_in_progress
        - use app.max_jobs_per_rpc
    - adjust wu.rsc_fpops_est
    - remove old credit stuff
        fpops_cumulative, credit_multiplier
        credit computation in scheduler

- AVERAGE class: use the Knuth algorithm (Wikipedia)


svn path=/trunk/boinc/; revision=21021
2010-03-29 22:28:20 +00:00
David Anderson 295d4b54ea - server: major improvements to locality scheduling from Einstein@home.
Triggering the work generator is now done via the DB
    instead of flat files.

    Since only E@h uses locality scheduling,
    I kept the DB changes in a separate file (db/schema_locality.sql).
    There's a new field in the workunit table,
    and that's a required update (in db_update.php)
- manager: compile fix


svn path=/trunk/boinc/; revision=20807
2010-03-05 22:55:16 +00:00
David Anderson 67bc7dfc9b - unix: build fixes
svn path=/trunk/boinc/; revision=19755
2009-12-01 17:04:28 +00:00
David Anderson 8caa2cf3d5 - test code for new credit system
svn path=/trunk/boinc/; revision=19462
2009-11-04 21:23:56 +00:00
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 fb443e5c31 - compile fixes
svn path=/trunk/boinc/; revision=18832
2009-08-13 03:35:26 +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 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 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 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
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 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
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 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
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 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
Adam Kornafeld 7b667b4693 Assimilator program for pymw
svn path=/workspaces/kadam/; revision=15658
2008-07-22 21:26:36 +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
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 fa6d38a51e - scheduler: fix FCGI compile problem.
FCGI can't use libboinc.a; is needs its own specially-compiled
    versions of everything in lib/


svn path=/trunk/boinc/; revision=15066
2008-04-17 15:43:51 +00:00
David Anderson 4e9fbac5e0 - admin web: touch reread_db in manage_app_versions.php
- DB code: remove "is_high_priority" stuff.
- scheduler: merge find_app_version() into get_app_version().
    Have the latter memoize its results (both positive and negative).
    Have it call app_plan() for apps with nonempty plan_class.
- scheduler: first steps towards improved selectability of log messages.
    It will eventually be like the client,
    where you can select among various types of messages.
- feeder: if can't unlink the reread_db trigger file, exit
    (else we'd go into an infinite loop)

svn path=/trunk/boinc/; revision=14940
2008-03-18 21:22:44 +00:00
Reinhard Prix ebcbbb657e fixed internal library dependencies in Makefile.am's
svn path=/trunk/boinc/; revision=14918
2008-03-15 03:26:14 +00:00
David Anderson b20f2d915c - server: added a mechanism for submitting jobs as:
> boinc_submit --infile foo --outfile blah program --args
    This will run "program" on a remote host,
    with the given input, output files, and command-line args

    It manages everything for you.
    You don't have to worry about apps, app_versions,
    template files, wrapper job files, etc.
    See: http://boinc.berkeley.edu/trac/wiki/SingleJob

    Initial checkin - not debugged yet.

svn path=/trunk/boinc/; revision=14842
2008-03-04 23:50:38 +00:00
David Anderson 54519a4ee1 - Server: add "job assignment" feature.
Lets you assign a WU to a particular host,
    to one or all hosts belonging to a user or team, or to all hosts.
    See http://boinc.berkeley.edu/trac/wiki/AssignedWork
    Disabled unless you include <enable_assignment> in config.xml
    Uses a new DB table.
    Tested but only a little.
- Server: code cleanup; moved result-handling to a new file,
    and removed the PLATFORM_LIST arg to everything
    (put it in SCHEDULER_REQUEST instead)

svn path=/trunk/boinc/; revision=14767
2008-02-21 00:47:50 +00:00
David Anderson dcb2c614a4 - trickle handler: make it compile, and add to Makefile.am
(from Eric Myers)

svn path=/trunk/boinc/; revision=14680
2008-02-05 23:30:28 +00:00
David Anderson a1664cc070 - scheduler: simplified Carl's checkin (avoid virtual destructors)
- API: small tweak for standalone

svn path=/trunk/boinc/; revision=14679
2008-02-05 21:26:43 +00:00
David Anderson 94fdec8b70 - scheduler: send log messages to file, rather than httpd error log,
when using FCGI (from Carl Christensen)

svn path=/trunk/boinc/; revision=14678
2008-02-05 20:16:57 +00:00
David Anderson f2761c6f68 - scheduler: get FCGI version to compile
svn path=/trunk/boinc/; revision=14621
2008-01-24 20:22:54 +00:00
David Anderson 2be6f8e53a - Client: add <run_apps_manually> config flag.
This is for debugging apps (currently works only in Unix).
    What it does: when running an app,
    the client does everything except actually fork/exec the app,
    i.e. it sets up the slot dir, creates shared mem segment etc.
    It then continues as if the app were actually running,
    and you can then manually run your app under a debugger
    in the slot directory.
    Note: the client won't notice the termination of your app.
- API, Unix: in situations where the timer thread wants to exit
    (e.g. it notices a missing heartbeat).
    don't directly call boinc_exit(),
    since this touches data structures that the worker thread
    may be using concurrently.
    Instead, set a flag telling the worker thread to call boinc_exit()
    (which it will do from its signal handler)
    This is an attempt to fix problems reported by Bernd;
    I haven't tested it.
- scheduler: add config flag for uploading usage data
- web: show account key and weak account key on user page
- added some code for multithread support (not finished)

api/
    boinc_api.C


svn path=/trunk/boinc/; revision=14542
2008-01-13 00:12:14 +00:00
David Anderson 820eb30596 - compile fixes
svn path=/trunk/boinc/; revision=14373
2007-12-10 22:13:48 +00:00
Frank Thomas 6d341df856 Remove the symlinks status and stop on "make clean".
svn path=/trunk/boinc/; revision=13834
2007-10-11 13:24:22 +00:00
David Anderson 0bbe224c21 - scheduler: the "max_wus_in_progress" option only worked if
"resend_lost_results" option was used also
    (because the count of in-progress results was
    based from the DB query used by resend_lost_results).

    Fix: initialize the count of in-progress results to
    the list provided in the scheduler request.
- scheduler: add "--mark_jobs_done" flag; if set, all jobs
    sent are marked as done, and their WUs enabled for transition.
    This is used for simulation purposes,
    in conjunction with sched_driver.
- scheduler: if --batch option is set, don't check RPC seqnos
    (for simulation purposes)

svn path=/trunk/boinc/; revision=13101
2007-07-05 04:18:48 +00:00
David Anderson ef80e8576f - Added program sched/sched_driver.C.
This generates a sequence of scheduler requests,
    with host info taken from a file,
    that you can feed into the scheduler (cgi --batch)
    to simulate things like homogeneous redundancy
- Added args to XML_PARSER::skip_unexpected() to you can say
    whether to write messages to stderr for unparsed stuff.
    This is set to true if log_flags.unparsed_xml is set (client)
    or if debug_level is 3 (server)
- removed references to $(LIBRSA) in Makefile.am's

client/
    Makefile.am
    acct_mgr.C
    gui_rpc_server_ops.C
    log_flags.C
lib/
    Makefile.am
    app_ipc.C
    gui_rpc_client_ops.C
    parse.C,h
    prefs.C
sched/
    Makefile.am
    sched_config.C
    sched_driver.C

svn path=/trunk/boinc/; revision=13090
2007-07-03 21:55:50 +00:00
David Anderson c912a6506b - user web: fixed bug in private-message code
- back end: moved HR_INFO to a separate file;
    did some debugging in HR code

html/
    inc/
        forum_user.inc
        util.inc
    user/
        forum_pm.php
sched/
    Makefile.am
    census.C
    feeder.C
    hr.C,h
    hr_info.C,h (new)

svn path=/trunk/boinc/; revision=12978
2007-06-22 03:46:42 +00:00
David Anderson f5d94818dd - added "census", a program that counts up how much RAC
there is for each HR class, and writes it to a file.
    This will be used soon for HR support in the feeder.
- split the HR code into hr.C,h (stuff used by both census and scheduler)
    and sched_hr.C (stuff used only by the scheduler)
- database: change DB_CREDITED_JOB to treat workunitid
    as a double (which it is) rather than a long.
    BTW, long == int.
- fixed lots of compile warnings in the server code

db/
    boinc_db.C,h
lib/
    boinc_cmd.C
    miofile.C
    util.C
sched/
    Makefile.am
    census.C (new)
    feeder.C
    file_deleter.C
    file_upload_handler.C
    handle_request.C
    hr.C,h (new)
    main.C
    sample_assimilator.C
    sample_work_generator.C
    sched_array.C
    sched_hr.C,h
    sched_send.C
    server_types.C
    transitioner.C
    validator.C

svn path=/trunk/boinc/; revision=12970
2007-06-20 22:34:06 +00:00
Jeff Cobb bad412aebc fcgi_file_upload_handler : compile, and link to, the necessary .o files
svn path=/trunk/boinc/; revision=12732
2007-05-23 20:41:50 +00:00
David Anderson fe68a746fd - scheduler: fix FCGI compile
- API: add files for version 6 graphics

api/
    Makefile.am
    graphics2.C (new)
    graphics2_unix.C (new)
    graphics2_win.C (new)
sched/
    Makefile.am

svn path=/trunk/boinc/; revision=12714
2007-05-22 20:12:45 +00:00
David Anderson a37403a673 - scheduler: add <workload_sim> config option.
If set, the scheduler will use EDF simulation,
    together with the in-progress workload reported by the client,
    to avoid sending results that
    1) will miss their deadline, or
    2) will cause an in-progress result to miss its deadline, or
    3) will make an in-progress result miss its deadline
        by more than is already predicted.
    If this option is not set, or if the client request doesn't
    include a workload description (i.e. the client is old)
    use the existing approach, which assumes there's no workload.
    NOTE: this is experimental.  Production projects should not use it.
- EDF sim: write debug stuff to stderr instead of stdout
- Account manager:
    - if an account is detach_when_done, set dont_request_more_work
    - check done_request_more_work even for first-time projects
- update_uotd: generate a file for use by Google gadget
- user_links(): use full URLs (so can use in Google gadget)

client/
    acct_mgr.C
    work_fetch.C
html/
    inc/
        uotd.inc
        util.inc
    user/
        uotd_gadget.php (new)
sched/
    Makefile.am
    edf_sim.C
    sched_config.C,h
    sched_resend.C
    sched_send.C,h
    server_types.C,h

svn path=/trunk/boinc/; revision=12639
2007-05-10 21:50:52 +00:00
Eric J. Korpela 8a8ffc8ef9 Eric K 24 Apr 07
-  Exteded the "altername_platform" mechanism to x86_64 linux
       and solaris.  The current alternate platforms found by configure
       are...
	 x86_64-pc-linux-gnu    -> i686-pc-linux-gnu
	 sparc64-sun-solaris    -> sparc-sun-solaris
	 sparc-sun-solaris      -> sparc-sun-solaris2.7
	 powerpc64-apple-darwin -> powerpc-apple-darwin
    -  The alternate platform can be overridden on the configure command line
         --with-boinc-alt-platform="platformname"

    m4/
        boinc_platform.m4
    sched/
        Makefile.am
    client/
        client_state.C
        cs_scheduler.C
        client_state.h


svn path=/trunk/boinc/; revision=12467
2007-04-25 02:02:24 +00:00
David Anderson 3431d99471 svn path=/trunk/boinc/; revision=12414 2007-04-18 20:49:58 +00:00
Reinhard Prix 240d733a41 install validate_util.h for external building of validators
svn path=/trunk/boinc/; revision=11856
2007-01-14 22:43:10 +00:00
David Anderson be615f6a82 *** empty log message ***
svn path=/trunk/boinc/; revision=11204
2006-09-27 16:50:47 +00:00
David Anderson 7d144b3d4d *** empty log message ***
svn path=/trunk/boinc/; revision=10291
2006-06-09 23:17:05 +00:00
Jeff Cobb 646c9a5e81 *** empty log message ***
svn path=/trunk/boinc/; revision=9066
2005-12-14 22:48:05 +00:00
Eric J. Korpela c166c6beab Minor mods to allow BOINC apps to be compiled under Windows using Dev-C++
with MinGW

svn path=/trunk/boinc/; revision=9013
2005-12-01 00:25:21 +00:00
Reinhard Prix c8d09966cf Install header-files necessary for building workunit-generator externally linked to BOINC.
svn path=/trunk/boinc/; revision=8313
2005-09-29 11:56:28 +00:00
Jeff Cobb 52d8090ee4 *** empty log message ***
svn path=/trunk/boinc/; revision=7536
2005-08-27 15:13:53 +00:00
David Anderson 9898cdd8e3 split up scheduler code
svn path=/trunk/boinc/; revision=7171
2005-08-04 03:50:04 +00:00