Old: when checking whether an app can be run,
check for sufficient coprocessors relative to
the current coprocessor usage.
Bug: it there are 2 CUDA jobs,
the scheduler will decide to run both.
enforce_scheduler() will only be able to run one,
and the other CPU will be idle.
New: include coprocessor usage (along with RAM and CPUs)
in the check, and do a simulated reservation.
In the above scenario, the scheduler will select
one CUDA app and one non-CUDA app.
svn path=/trunk/boinc/; revision=15904
- client: don't leak process handles when abort jobs
- client: if an app exits or we kill it, always destroy the shmem segment.
- web: more HTML 4.01 Transitional conformity changes
svn path=/trunk/boinc/; revision=15865
to be used by anybody, and was only meant as a stop-gap until
we had some formal way to deal with co-processors.
client/
hostinfo_win.C
lib/
hostinfo.C, .h
svn path=/trunk/boinc/; revision=15849
the user by default cannot create globally shared objects. This
becomes a problem when protected application mode is turned off
for keyboard and mouse detection. Basically all of the components
would start up and fail to create the shared memory segment
and report the error through stderr which most people don't look
at by default.
The client is now the only component that is allowed to create the
shared memory segment, if creating the global segment fails it'll
create a local one instead. Both the tray and manager now just attach
to the existing segment, first trying the global one then the local
one.
client/
main.C
clientgui/
BOINCGUIApp.cpp, .h
clientlib/win/
boinc_dll.cpp
IdleTracker.cpp
clienttray/
tray_win.cpp, .h
win_build/
boinc.sln
boinctray.vcproj
svn path=/trunk/boinc/; revision=15767
- scheduler: fix bug in adaptive replication:
if send an unreplicated job to untrusted host,
set both wu.target_nresults and wu.min_quorum to app.target_nresults.
svn path=/trunk/boinc/; revision=15762
A file upload sends request.
The network is down, and something (e.g. a router)
sends a long (> 4KB) error page.
This overruns the 4KB buffer of HTTP_OP::req1.
Solution: keep track of the size of the buffer,
and don't overrun it.
Also move the body of a huge for loop into a separate function.
From Ian Hay.
Fixes#705
svn path=/trunk/boinc/; revision=15744
- client: better messages reporting coprocessors
- manager: bounds checks to avoid wxwidgets asserts
when job CPU estimates are absurdly large
svn path=/trunk/boinc/; revision=15644
libcudart{32,64}.so is bundled with client.
client loads it and if successful calls the device-query functions.
- client, Linux: append the current directory
(i.e., the BOINC data directory) to the LD_LIBRARY_PATH for apps.
This goes after the project dir and the slot dir.
This lets apps link to libcudartX.so.
NOTE: this is not recommended; better to include it with your app.
- client: allow for multiple messages from coproc probing
- fixed indentation in cs_platforms.C
svn path=/trunk/boinc/; revision=15591
1) the assimilator creates a job_summary_WUID file saying
- what host did the job
- error status if any
- info about missing output files
2) all output files are now optional.
3) the assimilator deletes temp files (templates, job dir file)
svn path=/trunk/boinc/; revision=15551
This tells the sample bitwise validator to ignore this file.
- client: parse the above field (avoid "unparsed XML" msgs)
svn path=/trunk/boinc/; revision=15514
- client: change CUDA detection on Linux and Mac.
Look for libcuda.so in /usr/lib/nvidia and /usr/lib64/nvidia.
If we find it, assume that libcudart is in the library path.
svn path=/trunk/boinc/; revision=15477
don't create shmem segs in global name space.
Hopefully this will fix a bug
(on Vista, UAC off, non-protected install)
where apps fail to attach to shmem.
svn path=/trunk/boinc/; revision=15444
- change ERR_CHILD_FAILED TO EXIT_CHILD_FAILED
(it's an exit code, not a function error code)
- client: reduce severity of benchmark error
- scheduler: compile fix
svn path=/trunk/boinc/; revision=15423
The problem: the variable ordered_scheduled_results
has a list of pointers to RESULTs.
These pointers become dangling when the project is detached.
It's not sufficient to do schedule_cpus() because this returns
immediately if # projects == 0.
So clear the list directly.
Rom: please port to 6.2
svn path=/trunk/boinc/; revision=15407