Commit Graph

88 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 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 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
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 e8f8c7bde2 - API: Win: resume other threads before exiting from timer thread.
Attempt to fix E@h bug.
- client: fix messages: asking for X instances doesn't mean
    that X instances are idle

svn path=/trunk/boinc/; revision=20772
2010-03-02 18:58:34 +00:00
David Anderson bf65c8ab30 - client: fix format strings for ninstances (can be fraction now)
svn path=/trunk/boinc/; revision=20075
2010-01-05 16:36:42 +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 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 7ef2fd563c - client: fixed failure to initialize CPU backoff;
leads to huge CPU backoff.
    Cap backoff when read statefile.

svn path=/trunk/boinc/; revision=19086
2009-09-18 05:07:45 +00:00
David Anderson 317b76054c - client: if project-supplied backoff > 28 days, cap rather than ignore
svn path=/trunk/boinc/; revision=19078
2009-09-17 16:46:21 +00:00
David Anderson 984bb92280 - client: cap project-supplied backoffs at 28 days
- client: anal-retentive alphabetization

svn path=/trunk/boinc/; revision=19060
2009-09-16 20:05:36 +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 e475c64a3b - client: fix log messages about scheduler RPC work req
- client: missing reset for ATI debt accounting

svn path=/trunk/boinc/; revision=18998
2009-09-03 04:39:58 +00:00
David Anderson 525b46a539 - client: add <sched_op_debug> msg for ATI work request
svn path=/trunk/boinc/; revision=18995
2009-09-02 22:14:28 +00:00
David Anderson 1f7dec108a - client:
- remove HTTP_OP::pi; just use gstate.proxy_info
    - remove HTTP_OP::set_proxy()
    - remove PROXY_INFO::operator=; struct assignment works

svn path=/trunk/boinc/; revision=18973
2009-09-01 16:41:48 +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 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 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 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 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 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 c750daed46 - client: reorganize and improve the logic for deciding
when to do a scheduler RPC:
    if user request or acct mgr request, ignore backoff and suspend via GUI;
    in all other cases honor both of these.

svn path=/trunk/boinc/; revision=17503
2009-03-04 22:55:57 +00:00
David Anderson fd5fc4a24b - client: fix bug that could cause scheduler RPC
to ask for work inappropriately,
    and tell user that it wasn't asking for work.
    Here's what was going on:
    There are two different structures with work request fields
    (req_secs, req_instances, estimated_delay):
    COPROC_CUDA *coproc_cuda
    and
    RSC_WORK_FETCH cuda_work_fetch.
    WORK_FETCH::choose_project() copied from cuda_work_fetch to coproc_cuda,
    but only if a project was selected.
    WORK_FETCH::clear_request() clears cuda_work_fetch but not coproc_cuda.

    Scenario:
    - a scheduler op is made to project A requesting X>0 secs of CUDA
    - later, a scheduler op is made to project B for reason
        other than work fetch (e.g., user request)
    - choose_project() doesn't choose anything,
        so the value of coproc_cuda->req_secs remains X
    - clear_request() is called but that doesn't change *coproc_cuda

    Solution: work-fetch code no longer knows about internals of
        COPROC_CUDA and is not responsible for settings its request fields.
        The copying of request fields from RSC_WORK_FETCH to COPROC
        is done at a higher level,
        in CLIENT_STATE::make_scheduler_request()

    Additional bug fix: estimated_delay wasn't being cleared in some cases.


svn path=/trunk/boinc/; revision=17411
2009-02-27 18:46:00 +00:00
David Anderson 3a8078bd5f - client: fix bugs in "abort_jobs_on_exit" feature:
- clear project backoffs when start abort sequence
    - don't back off projects if in abort sequence

svn path=/trunk/boinc/; revision=17375
2009-02-25 17:41:22 +00:00
David Anderson 2574afb41c - client: more instances of showing project with message. Fixes #848
svn path=/trunk/boinc/; revision=17335
2009-02-23 04:54:04 +00:00
David Anderson 2afd98ae70 - client: fix bug where master fetch failure doesn't clear request flag,
leading to infinite retry without backoff

svn path=/trunk/boinc/; revision=17269
2009-02-14 00:05:02 +00:00
David Anderson 872ed1a65c - client: if master file doesn't have URLs, clear RPC request
svn path=/trunk/boinc/; revision=17196
2009-02-10 19:33:46 +00:00
David Anderson 1fc3722e71 - client: add SCHEDULER_OP::rpc_failed();
this gets called when the op fails, either at initialization or later on;
        it clears the project's sched_rpc_pending flag if needed.
        This fixes a bug that caused user-requested RPCs to retry every 10 seconds
        when the network is down.
    - client: if debt-adjust period is too long, reset accounting.
        Otherwise we'll get this infinitely.
    - API: all optional alpha argument to TEXTURE_DESC::draw()

svn path=/trunk/boinc/; revision=17195
2009-02-10 19:30:59 +00:00
David Anderson 864864ab76 - client: all scheduler RPCs except user request are subject to backoff.
- client: if a project-requested RPC doesn't return work,
    don't do resource backoff.
- client: if a user-requested scheduler RPC errors out, clear the request

svn path=/trunk/boinc/; revision=17191
2009-02-09 22:00:31 +00:00
David Anderson 5eeb9c0815 - client: fix bug that caused infinite sched RPCs if project down
svn path=/trunk/boinc/; revision=17127
2009-02-03 18:08:40 +00:00
David Anderson be31245c82 - client: work fetch fixes
svn path=/trunk/boinc/; revision=17090
2009-01-31 00:20:13 +00:00
David Anderson 5b132ae4f6 - client: simplify message describing scheduler request;
to get work request details, use <sched_op_debug>

svn path=/trunk/boinc/; revision=16988
2009-01-22 21:29:09 +00:00
David Anderson 132cc6bba3 - client: debugging CUDA-related stuff
- client: if reset a project, clear its overall and per-resource backoffs

svn path=/trunk/boinc/; revision=16862
2009-01-10 00:48:22 +00:00
David Anderson 8740ffdc94 - client: more work-fetch stuff.
No more per-project shortfall.
    It's getting pretty close.

svn path=/trunk/boinc/; revision=16765
2009-01-03 06:01:17 +00:00
David Anderson 8c591e31df - client: first whack at new work-fetch logic. Very preliminary.
svn path=/trunk/boinc/; revision=16754
2008-12-31 23:07:59 +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