Commit Graph

81 Commits

Author SHA1 Message Date
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
David Anderson 90e1e58113 - client: include app versions only of this project in sched req
svn path=/trunk/boinc/; revision=21523
2010-05-14 17:39:20 +00:00
David Anderson 68e5199fe7 - client: just send 1 copy of app versions
svn path=/trunk/boinc/; revision=21516
2010-05-14 03:08:23 +00:00
David Anderson 35cd242539 typo
svn path=/trunk/boinc/; revision=21515
2010-05-13 22:19:02 +00:00
David Anderson 9187cb52ba - client and scheduler RPC:
Add more info to "project in-progress job list".
    Old: entries included only job name and app plan class;
        this was used to resend lost jobs,
        and to count the # of CPU and GPU jobs.
        But it's not usable e.g. for per-app in-progress limits.
    New: send the client's app versions (including usage info)
        and for each in-progress job, which app version it uses.
        (This reduces request-message size compared with sending
        usage info and app name per job).
- client and scheduler RPC:
    Add more info to "all in-progress job list", and make it optional.
    This list is used by schedulers that do deadline checks
    using EDF workload simulation.
    Old: the list is always sent, and it contains no info
        about job resource usage
    New: the list is sent only if the scheduler asked for it
        in a previous reply,
        and each entry now contains resource usage (CPU, GPUs)
    Note: the scheduler's EDF simulator is outdated;
        it doesn't know about GPU jobs.
        But we may as well get the info in place.


svn path=/trunk/boinc/; revision=21513
2010-05-13 20:18:27 +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 858661669d - client: missed one
svn path=/trunk/boinc/; revision=21337
2010-04-29 20:45:44 +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 9f9d98fff1 - client: write daily net history on shutdown
- client: remove extraneous calls to calShutdown()
    in ATIs available-RAM code.


svn path=/trunk/boinc/; revision=21304
2010-04-27 17:54:29 +00:00
David Anderson 26c0814d26 - client: clean up network suspension logic.
There are now separate flags for
    "file_xfers_suspended": don't do file transfers
    "network_suspended": don't do any network comm
        (scheduler RPCs, RSS fetch, master fetch, etc.)
    The policy:
    if preferences/settings say no network
    (quota exceeded, no-network mode, user active, time, excl. app)
    then:
        file_xfers_suspended = true
        if (no recent network-related RPC) network_suspended = true
- user web: code cleanup for project prefs

svn path=/trunk/boinc/; revision=21299
2010-04-26 19:31:28 +00:00
David Anderson d0691236b9 - client: report daily xfer stats in scheduler request
(not used by scheduler, but maybe later)


svn path=/trunk/boinc/; revision=21273
2010-04-24 03:18:24 +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 c0ad0f3745 - update_versions: if file is already in download dir,
and is the same, don't copy (it might not be writeable)
- client: change "result" to "task" in user-visible messages

svn path=/trunk/boinc/; revision=20785
2010-03-03 23:52:20 +00:00
David Anderson 13fe6a468c - client: code cleanup: most message code into a class
svn path=/trunk/boinc/; revision=20029
2009-12-23 19:52:34 +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 b499654603 - client: more notice stuff. Substantial progress!
We're now saving feed lists, and fetching items from feeds.

svn path=/trunk/boinc/; revision=20021
2009-12-23 00:58:27 +00:00
David Anderson 62ece8f222 - client: intermediate checkin for RSS/notice stuff.
It's coming along.

svn path=/trunk/boinc/; revision=20006
2009-12-22 03:56:24 +00:00
David Anderson 4e9fc3d595 - client: a big glob of new code related to notices.
Not functional yet.


svn path=/trunk/boinc/; revision=20002
2009-12-21 17:49:28 +00:00
David Anderson e3f77b53b4 - client: typo fix
svn path=/trunk/boinc/; revision=19901
2009-12-14 19:42:11 +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 6b937c7e54 - more code shuffle: add COPROCS to HOST_INFO
svn path=/trunk/boinc/; revision=19797
2009-12-07 01:21:42 +00:00
David Anderson b70229c093 - code shuffle: move client-specific GPU code to a separate file
svn path=/trunk/boinc/; revision=19794
2009-12-07 00:42:03 +00:00
David Anderson 59328aaccb - client: change how short term debt is updated.
Old: it's based entirely on CPU time.
        So a GPU project, whose app uses only a fraction
        of a CPU, accrues positive debt.
        This is OK if the project has only GPU apps,
        since STD is not (currently) used for GPU scheduling.
        But some projects have both CPU and GPU apps.
    New: STD is based on total processing.
        It has terms for each resource type.
        The notion of "runnable resource share" is specific to a type.
    Note: the notion of "resource share fraction" appears in
        a couple of other places:
        - it's passed to apps in app_init_data.xml
        - it's passed in scheduler requests.
        It should be broken down by resource type in these cases too.
        Note to self: do this later.

svn path=/trunk/boinc/; revision=19762
2009-12-02 03:41:52 +00:00
David Anderson 6fc27ffc44 - client: use [wfd] consistently
svn path=/trunk/boinc/; revision=19725
2009-11-27 21:21:39 +00:00
David Anderson 609872edf7 - client: the checkin of 15 Oct related to multi-thread apps
didn't work due to a typo.
    - client: if <ncpus> is present in cc_config.xml,
        we're supposed to act as if there were that many physical CPUs.
        In particular, we need to set host_info.p_ncpus to that value,
        since that's what is reported in scheduler requests.

svn path=/trunk/boinc/; revision=19522
2009-11-09 19:51:31 +00:00
David Anderson b29f920999 - Move URL-related code to a new file
- Remove stuff related to SOCKS version, since we only support 5

svn path=/trunk/boinc/; revision=19480
2009-11-05 18:02:51 +00:00
David Anderson 9f93535428 - client: bug fixes to the above.
Don't fetch work for an unable resource.

svn path=/trunk/boinc/; revision=19302
2009-10-14 19:11:11 +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 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 41e3b06b23 - client and scheduler RPC: add optional <cpu_backoff>, <cuda_backoff>,
and <ati_backoff> elements to scheduler reply.
    These specify backoffs for the resource types,
    overriding the existing backoff mechanism.
    Projects can supply these if they don't have apps of a particular type
    and don't want to get periodic requests for them.

svn path=/trunk/boinc/; revision=19059
2009-09-16 17:34:19 +00:00
David Anderson 0d4632d65d - client: save space in req msg. Didn't make much difference.
svn path=/trunk/boinc/; revision=19037
2009-09-10 18:32:46 +00:00
David Anderson 4c52989f59 - client: improve the estimation of "busy time" (see 17 July checkin).
If you have 2 CPUs and a 1-day job in EDF mode,
        the busy time should be zero, not .5 days.

        Add a class BUSY_TIME_ESTIMATOR that makes a somewhat better
        (though still fairly crude) estimate.

svn path=/trunk/boinc/; revision=19003
2009-09-03 20:31:04 +00:00
David Anderson 112cec62a5 - client: fix to [18945]; we only want to max the overall request
with a GPU request if project is anonymous platform
    AND it has an app for that GPU type
- client: report overall work request as well as per-resource-type requests

svn path=/trunk/boinc/; revision=18994
2009-09-02 21:36:25 +00:00
David Anderson 29c1751898 - client: if project is anonymous platform, set the overall work req
to the max of the requests for different resource types.
    Otherwise projects with old schedulers won't send us work.

svn path=/trunk/boinc/; revision=18945
2009-08-31 03:42:01 +00:00
David Anderson 073e6ded2c - client and scheduler: lay the groundwork for "fractional coproc jobs",
e.g. the Milkyway@home ATI app, of which we can typically run
    2 or 3 instances at once on a GPU.
    Changes include:
    - In APP_VERSION, don't use a COPROCS to represent the GPU
        requirements; just use doubles ncudas and natis.
    - sufficient_coprocs() etc. are no longer members of COPROCS
    - in HOST_USAGE, ncudas and natis are doubles
    - in scheduler request, req_instances is now a double

    This checkin doesn't include the job scheduling logic,
    i.e. assigning jobs to GPUs.  That will follow.

svn path=/trunk/boinc/; revision=18868
2009-08-19 18:41:47 +00:00
David Anderson c3fe504e1d - client: add ATI support to job scheduling and work fetch
svn path=/trunk/boinc/; revision=18850
2009-08-17 16:50:40 +00:00
David Anderson 5753153909 - client: 2nd try on my last checkin.
We need to estimate 2 different delays for each resource type:
    1) "saturated time": the time the resource will be fully utilized
        (new name for the old "estimated delay").
        This is used to compute work requests.
    2) "busy time": the time a new job would have to wait
        to start using this resource.
        This is passed to the scheduler and used for a crude deadline check.
        Note: this is ill-defined; a single number doesn't suffice.
        But as a very rough estimate, I'll use the sum of
            (J.duration * J.ninstances)/ninstances
        over all jobs that miss their deadline under RR sim.

svn path=/trunk/boinc/; revision=18629
2009-07-17 18:29:10 +00:00
David Anderson 46d9e8f087 - client: record the time results are received.
Process non-EDF GPU jobs in this order.


svn path=/trunk/boinc/; revision=18531
2009-06-30 20:22:54 +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 ab7cf41267 - client: tweak messages
svn path=/trunk/boinc/; revision=18280
2009-06-03 21:59:47 +00:00
David Anderson c2097091fe - client: show "est. delay" correctly in work fetch debug msgs
- client: show times correctly in rr_sim debug msgs
	- client: in "requesting new tasks" msg,
		say what resources we're requesting (if there's more than CPU)
	- client: estimated delay was possibly being calculated incorrectly
		because of roundoff error

svn path=/trunk/boinc/; revision=18269
2009-06-02 22:53:57 +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 44c02144e9 - lib: return proper error codes from boinc_rename() and boinc_mkdir()
- client: Haiku support (from Urias McCullough)
- client: include plan class in other_result list in sched request
    (for resource-specific jobs-in-progress limit)

svn path=/trunk/boinc/; revision=18250
2009-05-31 16:38:37 +00:00
David Anderson af93af28f7 - client: eliminate the need to write the state file on each checkpoint.
Instead, write the info into a file in the slot directory,
		and check for these files on startup.
		This should reduce the overhead of state-file writing
		on machines with lots of cores.
		There will still be a flurry of writes each time a job finishes,
		but reducing that overhead would be a larger job.
	- client: make sure we write the state file after a failed RPC

svn path=/trunk/boinc/; revision=17814
2009-04-15 06:22:53 +00:00
David Anderson b3f07e1a0c - client: show project name in "backoff ended" msg
svn path=/trunk/boinc/; revision=17719
2009-04-01 23:22:17 +00:00
David Anderson 3e04801942 - client: clear resource backoffs on user-requested RPC
- client: randomize resource backoffs to avoid lockstep

svn path=/trunk/boinc/; revision=17664
2009-03-26 16:56:20 +00:00
David Anderson 5a5b386313 - client: garbage collect after scheduler RPC;
if project sent some irrelevant FILE_INFOs,
		this will avoid starting transfers for them.

svn path=/trunk/boinc/; revision=17644
2009-03-23 01:33:17 +00:00
David Anderson dfc62d896d - Manager: show elapsed time instead of CPU time in Task tab.
CPU time is visible in task Properties.
- Manager: in task Properties, show final CPU and elapsed times
    if job is finished
- client: honor backoff for account-manager-requested scheduler RPCs
- client: keep track final elapsed time for results
- GUI RPC: report final elapsed time

svn path=/trunk/boinc/; revision=17588
2009-03-11 22:01:38 +00:00
David Anderson 47c889f002 - client: backoff overrides project-requested scheduler RPC.
Otherwise, if scheduler is down, we'll retry infinitely every 10 secs
	- client: remove auto_update.poll() (not used)

svn path=/trunk/boinc/; revision=17585
2009-03-10 22:14:16 +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