Commit Graph

9 Commits

Author SHA1 Message Date
David Anderson 9f170696a4 - client: code cleanup
svn path=/trunk/boinc/; revision=17100
2009-02-02 18:45:00 +00:00
David Anderson 6120b02306 - client: code cleanup
svn path=/trunk/boinc/; revision=17098
2009-02-02 05:15:12 +00:00
David Anderson 89188fca84 - client: there was a problem with how the round simulator
worked in the presence of coprocessors.
    The simulator maintained per-project queues of pending jobs.
    When a job finished (in the simulation) it would get
    one or more jobs from that project's pending queue.

    The problem: this could cause "holes" in the scheduling of GPUs,
    and produce an erroneous nonzero shortfall for GPUs,
    leading to infinite work fetch.

    The solution: maintain a separate (per-resource, not per--project)
    queue of pending coprocessor jobs.
    When a coprocessor job finishes,
    start pending jobs from the queue for that resource.

    Another change: the simulator did strict reservation of coprocessors.
    If there are 2 instances of CUDA,
    and a 1-instance job is running in the simulation,
    it wouldn't start an additional 2-instance job.
    This also can cause erroneous nonzero shortfalls.

    So instead, schedule coprocessors like CPUs, i.e. saturate them.
    This can cause distorted completion time estimates,
    but it's better than infinite work fetch.

svn path=/trunk/boinc/; revision=17093
2009-02-01 04:37:19 +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 cd4ca5fb17 - client: fix calculation of a job's FLOPS rate in round-robin simulation
svn path=/trunk/boinc/; revision=16662
2008-12-09 20:01:01 +00:00
David Anderson fbb899f1c0 - client: in round-robin simulation, don't count a project in
total resource share if it has coproc jobs and no CPU jobs.

svn path=/trunk/boinc/; revision=16652
2008-12-08 23:00:23 +00:00
David Anderson 57639bdaae - client: in round-robin simulation, only increment CPU shortfall
(per-project or overall) if there are no pending tasks.
        This is needed when there are coproc (i.e. CUDA) jobs;
        CPUs may be idle because pending jobs are waiting for active jobs
        to release coprocs.
        In this situation the CPU idleness should not be counted as shortfall;
        otherwise (if there are only coproc jobs) there will always be a shortfall,
        and the client will fetch infinite work.

svn path=/trunk/boinc/; revision=16545
2008-11-24 18:57:04 +00:00
David Anderson 9987f9d245 - client: revise round-robin simulation to take variable avg_ncpus into account
svn path=/trunk/boinc/; revision=16366
2008-10-30 21:07:35 +00:00
David Anderson 2d1d47de15 - client: move round-robin simulation to its own file
- web: check for profile existence before trying to show it
- file deleter: add some debugging msgs

svn path=/trunk/boinc/; revision=16338
2008-10-28 21:59:25 +00:00