The round-robin simulation wasn't handling multithread jobs correctly.
For example, given two 3-CPU jobs,
it would model running them together on a 4-CPU host.
This doesn't correspond with the CPU scheduler,
which runs only 1 at a time.
So the simulator would say that there are no idle CPUs
when in fact there are, and no new CPU jobs would be fetched.
svn path=/trunk/boinc/; revision=22801
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
Old: scheduling has 2 phases:
1) computing a list of jobs to run (a vector of RESULT*);
this is done infrequently
2) enforcing the schedule; this is done more frequently
Problem:
when we enforce the schedule,
the RESULTs in the jobs-to-run list may not still be runnable,
and in fact they may not still exist (dangling pointer).
New: combine the 2 phases
svn path=/trunk/boinc/; revision=22792
VM has been running since the last state change, we'll use that
instead.
- vboxwrapper: provide basic stub functions for starting/stopping/
suspending/resuming a VM. Leave wrapper functionality in
vboxwrapper, and VM specific functionality in vbox_*. Ideally
only the stub functions would have to change for other VM
implementations.
samples/vboxwrapper/
vbox.cpp, .h
vbox_win.cpp
vboxwrapper.cpp
win_build/
vboxwrapper.vcproj
svn path=/trunk/boinc/; revision=22753
since we now do round-robin for GPUs as well as CPU.
NOTE: this bug was found using the client simulator!
- client simulator: generate REC graph
svn path=/trunk/boinc/; revision=22746
API set. Use the existing wrapper as the baseline. Current
wrapper just dumps the existing VMs defined on the machine.
More to follow.
samples/vboxwrapper/mscom/
VirtualBox.h
VirtualBox.tlb
VirtualBox_i.c
samples/vboxwrapper/
vbox.h
vbox_win.cpp
vboxwrapper.cpp
win_build/
boinc.sln
vboxwrapper.vcproj
svn path=/trunk/boinc/; revision=22745
recent estimated credit (REC) instead of debt.
These changes are enabled by
#define USE_REC
in work_fetch.h.
If this is commented out (the default) the client uses
debt-based scheduling, same as before.
TODO: work-fetch policy changes
- client simulator: various fixes:
- compute idle and wasted fraction based on all processing resources,
not just CPU
- compute job completion times based on FLOPS, not CPU seconds
- compute and use project->no_X_apps
etc.
svn path=/trunk/boinc/; revision=22741
even when the project doesn't have app versions that use the resource.
TODO: there are 2 functions,
compute_may_have_work() and dont_fetch(),
that do the same thing and both have misleading names.
Clean this up.
Rom: please back-port to 6.10
svn path=/trunk/boinc/; revision=22733
Old: maintain list of daily records.
When add a new record, delete records older than a month
Problem:
If there's a gap in the record (e.g. because project was down)
deleting old records may result in a list that
has an entry only for today.
Data for the last month is lost.
New:
When appropriate, adjust the date of old records
rather than deleting them
svn path=/trunk/boinc/; revision=22722
include the following per-project attributes:
suspended_via_gui, dont_request_more_work, deatch_when_done, ended
svn path=/trunk/boinc/; revision=22712