Commit Graph

397 Commits

Author SHA1 Message Date
David Anderson d1b0f1d295 - client: copy api_version of APP_VERSIONs in scheduler reply,
even if we already have the APP_VERSION.
    Otherwise, when upgrading from 5.10 to 6.2,
    we won't have the api_version,
    and we won't learn about it until project releases new version.

svn path=/trunk/boinc/; revision=15277
2008-05-22 19:09:52 +00:00
David Anderson 2c6a3b803d - client: added some http_debug messages in case where
POST2 temp file can't be opened or read
- client: don't show --sandbox option if it's not available

svn path=/trunk/boinc/; revision=15223
2008-05-15 16:08:52 +00:00
David Anderson fe75c574a9 - client: send client_cap_plan_class as <x>1</x> rather than <x/>
in scheduler request; the latter breaks older schedulers.
- old parse code: make skip_unexpected() work with <x/>

svn path=/trunk/boinc/; revision=15027
2008-04-07 16:04:02 +00:00
David Anderson 8ba1188dd0 - Client/server protocol:
send <client_cap_plan_class/> if client understands
    app version plan class.
    The server checks for this instead of version > 6.11.
- clean up unix_util: .h files declare only (extern) interfaces;
    no reason for daemon() to be C

svn path=/trunk/boinc/; revision=15006
2008-04-02 19:05:08 +00:00
David Anderson 5b92f66bf9 - client: finish and debug coprocessor support
- manager and GUI RPC: show plan class in app version string

svn path=/trunk/boinc/; revision=14994
2008-04-01 20:46:41 +00:00
David Anderson 9fa202d8f0 - client: add coprocessor support: i.e., parse the list of coprocs
in <app_version>s from the server,
    keep track of the number free of each type of coproc,
    and don't run an app that needs more than are available.
    (not quite working yet)

svn path=/trunk/boinc/; revision=14992
2008-04-01 15:08:47 +00:00
David Anderson 61663b48f9 - client: debug coprocessor code
svn path=/trunk/boinc/; revision=14981
2008-03-28 21:22:48 +00:00
David Anderson 4554fa5ce3 - server and client:
in server->client reply messages and in the client itself,
    move app-planning info from RESULT to APP_VERSION.
    This was necessary to allow anonymous platform info (app_info.xml)
    to specify avg_ncpus, etc.
    e.g., if someone wants to write a multithread version of SETI@home,
    or a GPU/CUDA version,
    they can run it using the anonymous platform mechanism
    and it will be scheduled correctly.

    If a server sends an existing APP_VERSION but with different
    app-planning info, the client will accept and use the new info.

svn path=/trunk/boinc/; revision=14978
2008-03-28 18:00:27 +00:00
David Anderson 13400c9516 Changes for multithread app support:
- update_versions: use __ (not :) as separator for plan class
- client: add plan_class to APP_VERSION;
    an app version is now identified by platform/version/plan_class
- client CPU scheduler: don't assume apps use 1 CPU
- client: add avg_ncpus, max_cpus, flops, cmdline to RESULT
- scheduler: implement app planning scheme

Other changes:

- client: if symlink() fails, make a XML soft link instead
    (for Unix running off a FAT32 FS)
- client: don't accept nonpositive resource share from AMS
- daemons and DB: check for error returns from enumerations,
    and exit if so.  Thus, if the MySQL server goes down,
    all the daemons will soon exit.
    The cron script will restart them every 5 min,
    so when the DB server comes back up so will the project.
- web: show empty max CPU % as ---
- API: get rid of all_threads_cpu_time option (always the case now)


svn path=/trunk/boinc/; revision=14966
2008-03-27 18:25:29 +00:00
David Anderson c685f66384 - client: preliminary support for detecting and reporting coprocessors
(for now, CUDA devices)

svn path=/trunk/boinc/; revision=14876
2008-03-10 20:40:35 +00:00
Charlie Fenton 23802ae381 Fix compiler warning
svn path=/trunk/boinc/; revision=13896
2007-10-18 08:18:22 +00:00
David Anderson e77278e00f - client: improve log messages
svn path=/trunk/boinc/; revision=13887
2007-10-17 23:30:05 +00:00
David Anderson a3f61b544f - client: fix bug where delay request from project is ignored
if no results are returned.
    Also, made the "Deferred" messages conditional on sched_op_debug
    Fixes  (from Rattledagger)

svn path=/trunk/boinc/; revision=13849
2007-10-15 22:08:24 +00:00
Frank Thomas 3bfc78b511 Updated the postal address of the Free Software Foundation in all license headers. See http://lists.ssl.berkeley.edu/pipermail/boinc_dev/2007-October/008939.html for reference.
svn path=/trunk/boinc/; revision=13804
2007-10-09 11:35:47 +00:00
David Anderson 066f01dc26 - Terminology in user web and client:
"task" instead of "result";
    "computer" instead of "host";
    "scheduler request" instead of "scheduler RPC"
    "access to Internet" instead of "access to reference web site"

svn path=/trunk/boinc/; revision=13774
2007-10-04 17:30:28 +00:00
David Anderson dabba949a4 - client: when a job finishes, read last (not first) 63KB of stderr
- client: parse <cpid_time> in scheduler reply;
        add cpid_time field to PROJECT.
        This defaults to the user_create_time.
        In deciding which CPID to send in a scheduler request,
        use the one with oldest cpid_time (not user_create_time).
        This is the client half of fixing a bug that causes
        CPID to flip/flop between to values in a certain case.

svn path=/trunk/boinc/; revision=13531
2007-09-03 23:00:22 +00:00
David Anderson cda95fd0ba - client: fix bug where if you get no work from a project
with zero delay_request,
    the client immediately requests more work

svn path=/trunk/boinc/; revision=13237
2007-07-28 22:15:31 +00:00
David Anderson d07916ca51 - client: change order so that backoff because of no work
happens before server-requested backoff (eliminate double messages)

svn path=/trunk/boinc/; revision=13114
2007-07-06 21:58:32 +00:00
David Anderson 5059102816 - client: code cleanup. Was looking for fopen()s without fclose(),
didn't find any.

client/
    cs_scheduler.C
    app_start.C
    time_stats.C

svn path=/trunk/boinc/; revision=13051
2007-06-29 15:45:15 +00:00
David Anderson 45f04aa04b - back end: make it possible to run multiple instances of make_work,
for WUs of different applications
    (need to count unsent results separately by app)
- feeder: major code cleanup
    - application interleaving (for -allapps) is now done
        by building a static slot-to-app array "app_indices".
        Fractional weights now work correctly.
    - enum sizes (for -allapps) are now precomputed
        in an array "enum_sizes"
    - rename "found" (confusing!!) to "collision"
    - swapped the names of mod_select_clause and select_clause,
        to reflect what they actually are
- file deleter: in finding oldest WU, order by id instead of create_time
    (there's no index on create_time)
- user web: show "merge by name" only to host owner
- add cpu_scheduler_period() member to GLOBAL_PREFS
    (so you don't have to multiply by 60 everywhere)
- infinite() fix for HPUX

client/
    cpu_sched.C
    cs_cmdline.C
    cs_scheduler.C
    rrsim_test.C
    sim.C
    work_fetch.C
html/user/
    hosts_user.php
lib/
    parse.h
    prefs.h
sched/
    feeder.C
    file_deleter.C
    make_work.C
    sample_work_generator.C
    sched_util.C,h
tools/
    updater.C

svn path=/trunk/boinc/; revision=12968
2007-06-20 16:27:27 +00:00
David Anderson f7e650191a - client: change Win program launch to suppress hourglass cursor
- client simulator: add --cpu_sched_rr_only and --dual_dcf options

client/
    app.h
    app_start.C
    client_types.C,h
    cpu_sched.C
    cs_scheduler.C
    sim.C,h
    work_fetch.C

svn path=/trunk/boinc/; revision=12671
2007-05-15 20:29:26 +00:00
David Anderson bd8b0aed41 - core client: on attach to project,
if the initial sched request failed,
		the manager would show "communicating" for 60 sec,
		then time out and show "failed to attach".
		But the project would actually be attached.
		This was due to a logic error,
		but I fixed it in a more fundamental way:
		by considering an attach to be complete immediately,
		without waiting for a successful scheduler RPC.

		This was originally done to ensure that the URL and account key were valid.
		But when using the BOINC Manager, we've already verified
		both of these before doing the attach project RPC.

		When using boinc_cmd, you now have to check for messages
		indicating a bad URL or account key.
		I changed things to print these messages on every sched RPC.

		Implementation: the notion of "tentative project" no longer exists.

	client/
		client_state.C,h
		client_types.C,h
		cs_account.C
		cs_benchmarks.C
		cs_scheduler.C
		gui_rpc_server_ops.C
		scheduler_op.C
		sim.C
		sim_util.C

svn path=/trunk/boinc/; revision=12663
2007-05-14 19:18:45 +00:00
David Anderson 3c7d66df91 svn path=/trunk/boinc/; revision=12644 2007-05-11 03:27:25 +00:00
David Anderson a3c22a1bf7 - client: add constructor/destructor for APP_VERSION, WORKUNIT, RESULT
- client: with anonymous platform, don't link app version twice

client/
    client_types.h
    client_state.C
    cs_apps.C
    cs_files.C
    cs_prefs.C
    cs_scheduler.C
    cs_statefile.C
    sim_util.C
html/
    uotd.inc
sched/
    edf_sim.h
    server_types.h

svn path=/trunk/boinc/; revision=12638
2007-05-10 16:23:10 +00:00
David Anderson f7a12ca7d4 - core client: fix bug in code to ignore unknown platforms.
client/
		cs_scheduler.C

svn path=/trunk/boinc/; revision=12597
2007-05-07 17:49:21 +00:00
David Anderson a6521f58e7 - core client: when parsing statefile or scheduler reply,
if get an app_version with unknown platform name, ignore it.
		This means that, e.g. if someone moves a BOINC directory
		from Intel to PowerPC Mac, things will still work right.

	client/
		client_state.C,h
		cs_platforms.C
		cs_scheduler.C
		cs_statefile.C

svn path=/trunk/boinc/; revision=12579
2007-05-06 20:22:39 +00:00
David Anderson 71bb6ef5c3 - Oops! Small mistake in multi-platform changes.
client/
		cs_scheduler.C

svn path=/trunk/boinc/; revision=12564
2007-05-05 00:06:21 +00:00
David Anderson 4a1741e220 - Core client: handle multiple platforms correctly.
Remove the tacet assumption that a host can handle
        applications for a single platform.
        With the Apr 30 scheduler changes,
        a project may (at different times)
        send app versions for the same app and version number,
        but different platforms.
        Before we would have ignored all but the first;
        now we handle them correctly.

        Implementation notes:
        - Add APP_VERSION.platform, RESULT.platform,
            and RESULT.version_num.
            If these are missing from an XML doc
            (e.g. an existing state file or a scheduler reply
            from a project not running current server)
            then set to the primary platform.
        - Continue to write workunit.version_num
            and active_task.version_num to state file,
            even though these are no longer part of the struct.
            This allows users to revert to an older version.

    client/
        app.C
        check_state.C
        client_state.C,h
        client_types.C,h
        cs_apps.C
        cs_scheduler.C
        cs_statefile.C
        sim.C

svn path=/trunk/boinc/; revision=12542
2007-05-03 17:14:30 +00:00
Rom Walton a100628ee8 - fixes :
* refactored the alternate platform mechinism so that we
          can support multiple alternate platforms.
        * moved everything to cs_platforms.C since we expect the
          kind of sprawl that is in host_info.C on the *nix
          environments.
    - Clean up some warnings
          
    client/
        acct_setup.C
        client_state.C, .h
        client_types.h
        cs_platforms.C (Added)
        cs_scheduler.C
        cs_statefile.C
        http_curl.C
    lib/
        str_util.h

svn path=/trunk/boinc/; revision=12531
2007-05-02 17:53:35 +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
Rom Walton 9eda52126b Rom 19 Apr 2007
- Match the client-side and server-side XML for alternate
        platforms.
    - Print both the max active memory usage and max idle
        memory usage after all the preference information has
        been parsed.
        
    client/
        cs_prefs.C
        cs_scheduler.C

svn path=/trunk/boinc/; revision=12425
2007-04-20 03:11:48 +00:00
Rom Walton ac6974b62b Rom 19 Apr 2007
- Fix a minor compile problem on 64-bit Windows platforms with the
        call to SetTimer.
    - fixes : Introduce the notion of an alternate platform for 64-bit
        Windows clients, which can also run 32-bit Windows apps.
        
      TODO: We'll need to refactor the whole platform section in the
        scheduler request creation section so that it can handle
        multiple alternate platforms and for Linux/Mac.
        
    api/
        windows_opengl.C
    client/
        client_state.C, .h
        cpp.h
        cs_scheduler.C

svn path=/trunk/boinc/; revision=12421
2007-04-19 20:53:16 +00:00
David Anderson bc98f0e90c *** empty log message ***
svn path=/trunk/boinc/; revision=12367
2007-04-13 22:55:18 +00:00
David Anderson 3eaea4fb71 *** empty log message ***
svn path=/trunk/boinc/; revision=12347
2007-04-11 21:49:57 +00:00
David Anderson 8ee50511de *** empty log message ***
svn path=/trunk/boinc/; revision=12277
2007-03-28 21:30:45 +00:00
David Anderson bcb25e86a1 *** empty log message ***
svn path=/trunk/boinc/; revision=12264
2007-03-22 02:38:45 +00:00
David Anderson 138f17af40 *** empty log message ***
svn path=/trunk/boinc/; revision=12216
2007-03-13 19:33:27 +00:00
David Anderson 81effa6a7b *** empty log message ***
svn path=/trunk/boinc/; revision=12127
2007-02-21 16:26:51 +00:00
David Anderson c51b5b443c *** empty log message ***
svn path=/trunk/boinc/; revision=11984
2007-01-26 22:34:05 +00:00
David Anderson 47f8a509fe *** empty log message ***
svn path=/trunk/boinc/; revision=11981
2007-01-26 18:38:17 +00:00
David Anderson a26b6a2215 *** empty log message ***
svn path=/trunk/boinc/; revision=11972
2007-01-25 23:39:06 +00:00
David Anderson 3f17de9d9d *** empty log message ***
svn path=/trunk/boinc/; revision=11971
2007-01-25 21:36:27 +00:00
David Anderson 71fc6345b7 *** empty log message ***
svn path=/trunk/boinc/; revision=11957
2007-01-24 21:20:57 +00:00
David Anderson 563f2736a4 *** empty log message ***
svn path=/trunk/boinc/; revision=11947
2007-01-23 23:02:19 +00:00
David Anderson c12709c7e2 *** empty log message ***
svn path=/trunk/boinc/; revision=11938
2007-01-23 17:24:43 +00:00
David Anderson 7550b38daf *** empty log message ***
svn path=/trunk/boinc/; revision=11899
2007-01-18 19:29:15 +00:00
Rom Walton 885aa4f833 *** empty log message ***
svn path=/trunk/boinc/; revision=11829
2007-01-10 23:50:38 +00:00
David Anderson 61ed72da89 *** empty log message ***
svn path=/trunk/boinc/; revision=11826
2007-01-10 20:29:44 +00:00
David Anderson a810ae3be7 *** empty log message ***
svn path=/trunk/boinc/; revision=11806
2007-01-08 22:15:21 +00:00
David Anderson 80c401e946 *** empty log message ***
svn path=/trunk/boinc/; revision=11722
2006-12-26 00:59:18 +00:00