Commit Graph

52 Commits

Author SHA1 Message Date
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
David Anderson 94cbb0d2dc - client: make the order of the result vector
consistent with the order used to select coproc jobs


svn path=/trunk/boinc/; revision=19238
2009-10-03 03:07:03 +00:00
David Anderson c06c07cf14 - client: if GPU is removed while jobs in progress,
don't show messages as internal errors.


svn path=/trunk/boinc/; revision=19237
2009-10-03 00:20:52 +00:00
David Anderson 833f417ae5 - client: better behavior if a GPU goes away:
1) if an APP_VERSION is missing a coprocessor,
        don't delete it and its files.
        (If the coprocessor returns, we won't need to re-download)
    2) if a RESULT uses an app version that is missing a coprocessor,
        abort it (rather than deleting it).
        The client will report the result on the next scheduler RPC,
        and the server will make a new instance.

svn path=/trunk/boinc/; revision=19235
2009-10-02 23:39:38 +00:00
David Anderson 208f53a51d - client/manager: add ATI stuff to GUI RPCs and manager display
svn path=/trunk/boinc/; revision=18853
2009-08-17 21:11:06 +00:00
David Anderson 0a523d5f3f svn path=/trunk/boinc/; revision=18843 2009-08-14 17:10:52 +00:00
David Anderson e606170b14 - client: try to fix situations where the scheduler
runs GPU jobs in a seemingly random order,
        or preempts GPU jobs needlessly.
        The change has two parts:
        1) sort the "results" vector by received_time,
            so that the RR simulation processes GPU jobs FIFO.
        2) in the CPU scheduler (earliest_deadline_result())
            instead of choosing the earliest-deadline GPU job that
            misses its deadline,
            pick the earliest_deadline GPU from a project that
            has a deadline miss for that GPU type
            (this is what's done in the CPU case)
    - client: fix bug where if you have an exclusive app,
        then remove it from cc_config.xml and do "update config",
        it doesn't go away.
        Need to clear the list before parsing.

svn path=/trunk/boinc/; revision=18842
2009-08-14 16:54:45 +00:00
Charlie Fenton a47204f5e6 client: More efficient implementation of active_only flag in get_results RPC
svn path=/trunk/boinc/; revision=18817
2009-08-07 09:22:02 +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 2d058c5cb4 - GUI RPC: add active_only option to get_results() RPC
svn path=/trunk/boinc/; revision=18304
2009-06-04 17:59:04 +00:00
David Anderson 8cd8f99bef - client: when parsing app_info.xml, make sure coprocessors are present.
fixes #911


svn path=/trunk/boinc/; revision=18284
2009-06-03 22:29:53 +00:00
David Anderson ab7cf41267 - client: tweak messages
svn path=/trunk/boinc/; revision=18280
2009-06-03 21:59:47 +00:00
David Anderson 30baaf0783 - client: reduce frequency of writing state file:
1) multiply checkpoint period by # of cores (or GPUs)
    2) don't write statefile after schedule_cpus()
        (we write it after enforce_schedule() if anything
        started or stopped, and that's all that matters)
- client: add new log flag <statefile_debug>;
    tells you when and why statefile is written

svn path=/trunk/boinc/; revision=17638
2009-03-20 17:58:51 +00:00
David Anderson 835a5288ac - client, GUI RPC: put <host_venue> back in get_state reply;
it's used by BoincView

svn path=/trunk/boinc/; revision=17560
2009-03-08 15:56:33 +00:00
David Anderson 4ccfb07065 - GUI RPC: the Jan 13 checkin removed some items from the
get_state() reply which are not included in our client interface.
    However, it turns out that BoincView uses these items; put them back.
- GUI RPC: set_debt() can set CUDA LTD as well as CPU

svn path=/trunk/boinc/; revision=17542
2009-03-06 20:15:13 +00:00
David Anderson e268dd735a - client: anon plaform app versions can specify coprocs
svn path=/trunk/boinc/; revision=17510
2009-03-05 18:23:54 +00:00
David Anderson e74f93c10d - client: if using anonymous platform, ignore (and complain about)
app versions in scheduler reply
- client: when reporting anonymous platform apps in sched request,
    don't include <file_info>s (not relevant to server)

svn path=/trunk/boinc/; revision=17507
2009-03-05 17:45:36 +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 63dfde353e svn path=/trunk/boinc/; revision=17421 2009-03-02 17:57:57 +00:00
David Anderson 258dac62b2 - client: it the state file or an RPC reply has an app version
using a coprocessor we don't know about, ignore it
    (and all results using that app_version will be flushed).
    This deals with the situation where we have some GPU jobs,
    but the GPU card is removed (previously this resulted in a crash).
    This requires some code shuffling so that we check for coprocessors
    before reading state file.


svn path=/trunk/boinc/; revision=17161
2009-02-06 00:22:21 +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 d93eb6da48 - GUI RPC: finish the changed started above;
update the way that app versions are identified.

Old: WORKUNIT contains version_num
    RESULT contains app_version_num (but only if running)

New: Keep old fields so new client works with old manager.
    RESULT contains version_num, plan_class
    Manager: if RESULT doesn't have version/plan_class
    (because talking to old client)
    look up app version based on WU version num.

svn path=/trunk/boinc/; revision=16903
2009-01-13 22:46:58 +00:00