Commit Graph

73 Commits

Author SHA1 Message Date
David Anderson 1174b00aba - client/manager: tweaks to Intel GPU code 2013-03-04 15:27:25 +01:00
Charlie Fenton ce87ec9848 OpenCL: First pass at adding support for Intel Ivy Bridge GPUs 2013-03-04 15:23:39 +01:00
David Anderson e538c8c303 - client: TIME_STATS fields go in <time_stats> part of state file
- scheduler: parse TIME_STATS fields (e.g., uptime)
- admin web: small fix for manage_apps.php
2013-03-04 14:14:05 +01:00
David Anderson 9cf10b400a - GUI RPC: expose TIME_STATS info (e.g. on_frac) in
the binding of the get_state() RPC
- client: move client_start_time and previous_uptime
    from CLIENT_STATE to TIME_STATS,
    so that these are also visible in GUI RPC
- scheduler RPC: move uptime and previous_uptime
    into <time_stats>
- client: condition an RR simulation message on <rrsim_detail>
- boinccmd: show TIME_STATS info in --get_state
2013-03-01 16:08:52 +01:00
David Anderson 36c304e7d3 - client: maintain current and previous uptime, and include them in scheduler RPC request. - scheduler: parse them Note: this is to support a future feature where the scheduler will send non-checkpointing jobs only clients likely to be able to complete them. 2013-02-26 16:53:20 +01:00
David Anderson 925f029556 - Unix startup script fixes, from Andrew Stevenson
svn path=/trunk/boinc/; revision=26140
2012-09-22 20:29:21 +00:00
David Anderson aa289f0916 - A bunch of tweaks from Steffen Moller, e.g. using MAXPATHLEN
svn path=/trunk/boinc/; revision=26133
2012-09-21 03:52:24 +00:00
David Anderson 32a08d27d9 - C++ code: use MAXPATHLEN for char arrays that hold paths
svn path=/trunk/boinc/; revision=25659
2012-05-09 16:11:50 +00:00
David Anderson bbfbef0fe8 - client: code cleanup. Move RESULT and PROJECT to separate files
svn path=/trunk/boinc/; revision=25621
2012-04-30 21:00:28 +00:00
David Anderson 6591272c80 - client: fix crashing bug that happened when a scheduler reply
had a parse error, and it included project files.
    While parsing the scheduler reply we'd add FILE_REFs to
    PROJECT::project_files,
    but wouldn't link them to FILE_INFOs since this is done
    only if the reply parses correctly.
    The next garbage_collect() would dereference these NULL pointers.

    Solution: parse the FILE_REFS into SCHEDULER_REPLY::project_files.
    Copy this to PROJECT::project_files only if the reply parses.


svn path=/trunk/boinc/; revision=25598
2012-04-25 05:51:26 +00:00
David Anderson 015a70e757 - client: define a "arrived-first" order on results
in which the tiebreaker is MD5 of name.
    That way the order is stable
    (it doesn't change from one run of the client to the next)
    and it doesn't grep results with similar names
    (and hence for the same app).
    This ordering is used for
    1) the order of display in the manager
    2) the job scheduler's notion of FIFO


svn path=/trunk/boinc/; revision=25300
2012-02-20 22:31:40 +00:00
Charlie Fenton 4120c8d505 MGR: If CPU or GPU is suspended from Activity Menu, change "Snooze" to "Resume" in system tray menu; client: always remember previous CPU and GPU activity settings
svn path=/trunk/boinc/; revision=25160
2012-01-27 13:02:35 +00:00
David Anderson 921b5c50df - client: create and destroy PERS_FILE_XFERs even if network suspended.
This will show pending uploads in the Transfers tab.
- file_upload_handler: fix message to client when can't acquire lock
- client: parse <alt_platform> in state file correctly


svn path=/trunk/boinc/; revision=24391
2011-10-13 19:05:18 +00:00
David Anderson 228f56b464 - client: in the function that sorts jobs by arrival time,
don't use name as a tiebreaker.
    The will typically group jobs of the same application,
    and (it is believed that) things run faster when
    applications are mixed.
- scheduler: bug: if a client gets host-specific prefs
    (e.g. from an account manager)
    it will send only the working prefs to the scheduler.
    The scheduler then always sends back the DB prefs,
    overwriting the host-specific prefs.
    Fix: note the mod time in the working prefs,
    and only send the DB prefs if they're more recent.


svn path=/trunk/boinc/; revision=24332
2011-10-05 04:12:16 +00:00
David Anderson 289bd16269 - client emulator fixes
svn path=/trunk/boinc/; revision=24024
2011-08-22 15:07:59 +00:00
David Anderson 1383142b03 - client: use new XML parser pretty much everywhere
svn path=/trunk/boinc/; revision=23984
2011-08-11 06:17:33 +00:00
David Anderson 609d5665cc - client: pass XML_PARSER& rather than MIOFILE& to parse functions.
Preparatory to using new-style XML parsing everywhere.


svn path=/trunk/boinc/; revision=23975
2011-08-09 21:44:14 +00:00
David Anderson cceea7f6d4 - client: rename MODE to RUN_MODE, and rename vars accordingly
svn path=/trunk/boinc/; revision=23974
2011-08-09 20:41:15 +00:00
David Anderson 880d01af58 - client: debug distributed storage functions
svn path=/trunk/boinc/; revision=23867
2011-07-20 22:29:17 +00:00
David Anderson 8296968cbb - client: changes to the client file model to support distributed storage,
as described here: http://boinc.berkeley.edu/trac/wiki/ClientDataModel
        Compatibility:
            clients that upgrade to this version should see nothing unusual.
            Clients that downgrade from this version to a previous version
            should see all projects reset
            (i.e. tasks disappear and then get re-downloaded).
    - manager: always show whether a file transfer is upload or download
    - client: don't scale work requests by resource share

svn path=/trunk/boinc/; revision=23862
2011-07-20 19:12:10 +00:00
David Anderson 6c59ef3bff - GUI RPC: restore <have_cuda>, <have_ati> elements in CC_STATE for compatibility
- client: copy coprocs to host_info._coprocs at startup
		(else GUI RPCs don't have right info)

svn path=/trunk/boinc/; revision=23757
2011-06-20 23:18:37 +00:00
David Anderson 6b0eba4641 - create_work and other tools: verify that the current dir,
parent dir, or BOINC_PROJECT_DIR actually is a project dir.
- client simulator: improvements


svn path=/trunk/boinc/; revision=23415
2011-04-21 17:04:42 +00:00
David Anderson 3b906a191c - client: generalize the GPU framework so that
- new GPU types can be added easily
		- users can specify GPUs in cc_config.xml,
			referred to by app_info.xml,
			and they will be scheduled by BOINC
			and passed --device N options
			Note: the parsing of cc_config.xml is not done yet.
		- RPC protocols (account manager and scheduler)
			can now specify GPU types in separate elements
			rather than embedding them in tag names
			e.g. <no_rsc>NVIDIA</no_rsc> rather than <no_cuda/>
	- client: in account manager replies, parse elements of the form
		<no_rsc>NAME</no_rsc>
		indicating the GPUs of type NAME should not be used.
		This allows account managers to control GPU types
		not hardwired into the client.
		Note: <no_cuda/> and <no_ati/> will continue to be supported.
	- scheduler RPC reply: add
		<no_rsc_apps>NAME</no_rsc_apps>
		(NAME = GPU name)
		to indicate that the project has no jobs for the indicated GPU type.
		<no_cuda_apps> etc. are still supported 
	- client/lib: remove set_debts() GUI RPC
	- client/scheduler RPC
		remove <cuda_backoff> etc. (superceded by no_app)
		Exception: <ip_result> elements in sched request
		still have <ncudas> and <natis>.
		Fix this later.

	Implementation notes:
	- client/lib: change "CUDA" to "NVIDIA" in type/variable names, and in XML
		Continue to recognize "CUDA" for compatibility
	- host_info.coprocs no longer used within the client;
		use a global var (COPROCS coprocs) instead.
		COPROCS now has an array of COPROCs;
		GPUs types are identified by the array index.
		Index zero means CPU.
	- a bunch of other resource-specific structs (like RSC_WORK_FETCH)
		are now stored in arrays, with same indices as COPROCS
		(i.e. index 0 is CPU)
	- COPROCS still has COPROC_NVIDIA and COPROC_ATI structs to hold vendor-specific info
	- APP_VERSION now has a struct GPU_USAGE to describe its GPU usage

svn path=/trunk/boinc/; revision=23253
2011-03-25 03:44:09 +00:00
David Anderson 4f7ceb2334 - client: remove auto update stuff from makefiles.
This feature is mothballed.


svn path=/trunk/boinc/; revision=23103
2011-02-24 22:18:14 +00:00
David Anderson 3a9549979e - client: tweak to ATI CPU recognition
from [P3D] Crashtest

svn path=/trunk/boinc/; revision=22845
2010-12-18 17:09:57 +00:00
David Anderson 58dadd91a8 - client, acct manager protocol:
allow <no_cpu>, <no_cuda> and <no_ati> bools
    within <account> in reply message.
    They suppress work fetch for that resource type from that project.
- scheduler:
    check max_granted_credit after wu.rsc_fpops_bound,
    so that max_granted_credit will be enforced
    even if wu.rsc_fpops_bound is absurdly high
    Fixes #1034.  From Diggory Hardy.


svn path=/trunk/boinc/; revision=22793
2010-12-02 04:53:12 +00:00
David Anderson 33713781d1 - client: distinguish between messages to be displayed as HTML
(e.g. "Download new client here" link) and others
		(e.g. "Bad tag in cc_config.xml: <foo>").
	- code cleanup; move show_message from main.cpp to client_msgs.cpp

svn path=/trunk/boinc/; revision=22548
2010-10-18 20:09:51 +00:00
David Anderson a20e7d5837 - client simulator: updates. Fix web interface.
svn path=/trunk/boinc/; revision=22476
2010-10-07 21:41:31 +00:00
David Anderson aeaac7026b - client: remove debugging code accidentally left in
svn path=/trunk/boinc/; revision=22443
2010-10-04 18:38:59 +00:00
David Anderson 794214208f - validator: if credit calculation returns an error,
wait 6 hours before retrying

svn path=/trunk/boinc/; revision=22418
2010-09-28 20:17:09 +00:00
David Anderson 1c4422985f - client: add <no_info_fetch> config option and --no_info_fetch
cmdline arg.
    Suppresses the fetch of project list and of current client version #.
    Use when running on grid nodes.
- debugging on client simulator.  Not done yet.

svn path=/trunk/boinc/; revision=22414
2010-09-27 20:34:47 +00:00
David Anderson fcbb8a286e - client simulator: major remodel and upgrade.
Insteady of using its own XML input files,
    the simulator now takes a client_state.xml file as input.
    The simulator generates a synthetic workload based on the
    projects, apps, app versions, WUs, and result it finds there.

    This means that a user seeing aberrant behavior
    can just send their client_state.xml file
    and (hopefully) we can use the simulator to repro.

    The simulator now can model GPUs.

    As of this checkin, the simulator compiles but doesn't work.
    There should be no change in the actual client.


svn path=/trunk/boinc/; revision=22409
2010-09-24 20:02:42 +00:00
David Anderson c7e13eafb3 - client: write GPU info to client_state.xml,
so that it can be input file to the client simulator.

svn path=/trunk/boinc/; revision=22405
2010-09-23 20:54:49 +00:00
David Anderson d56688527e - client: check whether anonymous-app files exist
- client: parse (and ignore) <anonymous_platform> element in state file

svn path=/trunk/boinc/; revision=22263
2010-08-17 23:08:40 +00:00
David Anderson 23de5a887f - client/scheduler: tweak translatable messages
svn path=/trunk/boinc/; revision=22129
2010-08-04 18:41:24 +00:00
David Anderson ef044d6841 - client/manager: add the ability to associate URLs with
client-generated notices.
    Use this as appropriate: e.g., for errors about cc_config.xml syntax,
    direct user to the web page describing this syntax.

svn path=/trunk/boinc/; revision=22024
2010-07-21 19:04:46 +00:00
David Anderson 673d44ad0d - client: fix bug with --abort_jobs_on_exit that caused the client
to request new work on exit
- client: change "unparsed tag" to "unrecognized tag" in msgs
- client: get rid of unused var work_fetch_no_new_work

svn path=/trunk/boinc/; revision=22000
2010-07-19 16:44:43 +00:00
David Anderson 15047b1e4d - client: make all MSG_USER_ALERT messages (i.e., those shown as notices)
translatable (and change some MSG_USER_ALERT messages to MSG_INFO).

svn path=/trunk/boinc/; revision=21709
2010-06-08 23:37:44 +00:00
David Anderson 40eebe00af - client/scheduler: in COPROCS, instead of having a vector of
pointers to dynamically allocated COPROC-derived objects,
    just have the objects themselves.
    Dynamic allocation should be avoided at all costs.

svn path=/trunk/boinc/; revision=21564
2010-05-18 19:22:34 +00:00
Rom Walton 9cb3e6ffc7 - client & lib: bring header inclusion up-to-date for the CC to begin
hunting down a memory leak.
        
    client/
        <Various Files>
    lib/
        <Various Files>

svn path=/trunk/boinc/; revision=21457
2010-05-11 19:10:29 +00:00
David Anderson 7db608660f - client: standardize debug messages.
Messages enabled by <foo_debug> are prefixed by "[foo]"


svn path=/trunk/boinc/; revision=21335
2010-04-29 20:32:51 +00:00
David Anderson 97f09a68c3 - client: fix bug where if anon platform file had bad platform name,
it would cause jobs to get discarded on client restart.
  - manager: remove flicker-producing messages on status bar

svn path=/trunk/boinc/; revision=20984
2010-03-23 00:01:25 +00:00
Rom Walton e14e1cad34 - Remove BOINC_RCSID tags from source files, we are doing branching and tagging
properly.
        
    <Various Files>

svn path=/trunk/boinc/; revision=20873
2010-03-12 16:51:57 +00:00
David Anderson 86ccb6eed3 - client: fix my last checkin
svn path=/trunk/boinc/; revision=20296
2010-01-28 13:29:10 +00:00
David Anderson 735e2b0448 - internal change: rename MSG_USER_ERROR to MSG_USER_ALERT
svn path=/trunk/boinc/; revision=20027
2009-12-23 18:02:40 +00:00
David Anderson 8182ccd031 - client/manager: first whack at a "snooze GPU" button
svn path=/trunk/boinc/; revision=19853
2009-12-10 23:26:35 +00:00
David Anderson 54e7c50b48 fix GPU bug
svn path=/trunk/boinc/; revision=19837
2009-12-09 01:09:28 +00:00
David Anderson e27659858d - result of code shuffle: the HOST_INFO structure returned
by the get_host_info() GUI RPC now contains GPU info

svn path=/trunk/boinc/; revision=19798
2009-12-07 06:13:17 +00:00
David Anderson 4bd0e4a2de - client: sort out proxy_info mess.
Source of proxy info (descending priority)
    - GUI RPC (Manager or boinccmd)
        This and only this is saved in state file.
        If neither HTTP nor SOCKS server name present,
        this is viewed as not present
    - environment vars
    - cc_config.xml

    Show sources of proxy info in message log.
    If one is present but overridden, show a message to that effect.

    This fixes a bug where someone had a proxy info env var and
    forgot about it.
    They got an erroneous message saying no proxy was being used.

svn path=/trunk/boinc/; revision=19785
2009-12-05 00:51:05 +00:00
David Anderson 5e862ac495 - client: on startup, if a coproc needed by a job is missing,
set a "coproc_missing" flag rather than aborting the job.
        If use removes a GPU board while there's a large queue of GPU jobs,
        they'll stay queued (until their deadline passes).

        Note: this doesn't fix the situation where user connects via
        Remote Desktop while GPU jobs are running or queued.
        We should check for Remote Desktop every minute or so, and stop GPU jobs.

svn path=/trunk/boinc/; revision=19287
2009-10-12 16:28:17 +00:00