- manager: display CUDA info in project properties page
- manager: use struct assignment instead of copy() function
svn path=/trunk/boinc/; revision=16925
- Update to libtool 1.5.24
- build environment: Major automake changes that I've been warning about
for some time.
- Now uses libtool to build libraries.
- Builds separate boinc_fcgi and sched_fcgi libraries for use with
FCGI server components.
- New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on
a library only if --with-libname[=DIR] is specified on the configure
command line. This is to allow inclusion of libraries when the
ssl, gtk, wxWidgets, or other configuration is incorrect for static
libraries.
- Added a lot of "--with-*" for some libraries that might be required for
static builds.
- The sea directory has been moved to packages/generic. Changes to sea
and the associated scripts might be required to better make use of the
staging mechanism and shared libraries.
- Fixed includes of boinc_fcgi.h in many files.
- Fixed places where FCGI_FILE needs to be used implicitly.
- Fixed missing define of _SC_PAGESIZE on hosts that define only
_SC_PAGE_SIZE.
- Moved build of boinc_cmd (and source file) from lib to client
svn path=/trunk/boinc/; revision=16904
update the way that app versions are identified.
Old: WORKUNIT contains version_num
RESULT contains app_version_num (but only if running)
New: Keep old fields so new client works with old manager.
RESULT contains version_num, plan_class
Manager: if RESULT doesn't have version/plan_class
(because talking to old client)
look up app version based on WU version num.
svn path=/trunk/boinc/; revision=16903
(corresponding to the get_project_config.php web RPC):
- platforms: list of platforms supported by the project
- sched_stopped: scheduler disabled
- web_stopped: DB-driven web features disabled
- min_client_version
- GUI RPC: add the following items to CC_STATE:
- platforms: list of platforms supported by the client
(this replaces the unused <platform_name>)
- GUI RPC: add the following items to PROJECT_LIST_ENTRY
(entry in the "all projects" list):
- platforms: list of platforms supported by the project
- GUI RPC: move APP_VERSION pointer from WORKUNIT to RESULT;
include plan class in APP_VERSION lookup.
This completes the change of March 2008,
and allows the Manager to work correctly when a project
has two different app versions of the same (app, platform, version)
running on a client at once (e.g., a CPU and a GPU app)
- get_project_config.php: remove logic that checks client version.
This page is accessed by PHP, not just by client
- web: add link to forum page to get forum as RSS
svn path=/trunk/boinc/; revision=16900
exceptional cases (e.g., send at least one job to a host with no work)
apply whether using EDF or basic check
- client: don't accept 0 for active/on/connected frac; set to 1
svn path=/trunk/boinc/; revision=16744
for projects with no active results.
This is now wrong because there coproc apps might have pending results.
Also remove nidle_cpus > 0 conditional that increments CPU shortfall;
I think this is vestigial code.
svn path=/trunk/boinc/; revision=16646
if missing, use checkpoint CPU time.
- client: enforce CPU schedule: if we're running a coproc job,
keep CPU utilization strictly less than NCPUS.
svn path=/trunk/boinc/; revision=16616
(otherwise it doesn't work for coproc or multi-proc apps)
- client: in estimate of job completion time,
weight the estimate based on fraction done more heavily
(quadratic rather than linear)
svn path=/trunk/boinc/; revision=16603
as the basis for estimating job completion times.
This should improve estimates for GPU apps,
and prevent the DCF from getting messed up.
svn path=/trunk/boinc/; revision=16598
(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
- client: make host CPID a function of:
MAC addresses + hostname + IP addr
This means that a given host will generally always get the same CPID.
Helpful e.g. on grids where the client gets installed repeatedly.
From Artyom Sharov.
client/
hostinfo_network.cpp
lib/
hostinfo.cpp
mac_address.cpp,h
win_build/
boinc_cli_curl.vcproj
libboinc.vcproj
svn path=/trunk/boinc/; revision=16432
If you store input and output files on different servers,
you can run 2 file_deleters, each one on the same machine
as the files it's going to be deleting.
- file_deleter: add -help option and usage()
client/
cpu_sched.cpp
sched/
file_deleter.cpp
svn path=/trunk/boinc/; revision=16397
for the preemptable_task_list.
The problem was that the ordering predicate (more_preemptable())
could change on the fly, making the heap inconsistent.
Instead, we create a vector, sort it by increasing preemptability,
then pop off the end.
svn path=/trunk/boinc/; revision=16395
leak detection will work.
- MGR: Have the BaseFrame call a function to determine if the
selection list should be saved instead of traversing
the application pointer. Each view just overrides the function
returning a true/false value. We don't have to worry about null
pointers and the like.
- MGR: BOINCGUIApp should never need to know how either the views
work or the document. Move the code that determines which
RPCs should be fired into each of the views. Have the document
look for it there.
- MGR: Reduce duplicate code for hiding and showing an application
- MGR: Move some Windows and Mac specific code into functions
and streamline the application startup and shutdown rountines.
- MGR: Move the event processing that was in BOINCGUIApp into the
BaseFrame.
- MGR: General cleanup.
- MGR: Doxygen comments.
- MGR: Cleanup some warnings.
client/
rr_sim.cpp
clientgui/
AdvancedFrame.cpp, .h
AsyncRPC.cpp, .h
BOINCBaseFrame.cpp, .h
BOINCBaseView.cpp, .h
BOINCClientManager.cpp
BOINCGUIApp.cpp, .h
BOINCTaskBar.cpp
MainDocument.cpp, .h
sg_BoincSimpleGUI.cpp, .h
ViewProjects.cpp, .h
ViewTransfers.cpp, .h
ViewWork.cpp, .h
WelcomePage.cpp
win_build/installerv2/
BOINC.ism
BOINCx64.ism
win_build/
sim.vcproj
svn path=/trunk/boinc/; revision=16357
are non-CPU-intensive or that use < 1 CPU (e.g., CUDA)
- client: get rid of spurious "internal error,
expected process to be executing" msg
- diag: don't check heap on every alloc
- fix a few compile warnings
svn path=/trunk/boinc/; revision=16323
preference not the total number of CPUs if we are
actually calculating the min of both of them.
client/
cpu_sched.cpp
svn path=/trunk/boinc/; revision=16289
<network_test_url>: where to go to see if network is up
<client_version_check_url>: where to get list of client versions
<client_download_url>: where to direct user to get new version
- manager: some different text for WCG version
svn path=/trunk/boinc/; revision=16208
Here's are the new semantics: a scheduler reply can include
<next_rpc_delay>
Make another RPC ASAP after this amount of time elapses.
This is specified by the <next_rpc_delay> element in config.xml.
<request_delay>
Don't make another RPC until this amount of time elapses.
This is sent automatically (and sometimes with large delays)
by various parts of the scheduler.
next_rpc_delay now "overrides" request_delay in the sense that
request_delay is ignored if it's greater than next_rpc_delay.
In addition: the client maintains a min_rpc_time which is set based
on request_delay and also by various exponential backoff schemes.
new_rpc_delay now overrides this as well, in the same sense.
svn path=/trunk/boinc/; revision=16206
- web: remove file_get_contents() workaround for PHP4
- web: If Akismet or ReCaptcha failure,
display the form again with a warning message at the top.
That way the user doesn't lose the text they just typed.
svn path=/trunk/boinc/; revision=16175
- client: change logic in a pathological file xfer case
(we asked for tail of file, proxy returned whole file)
to report fopen() errors correctly, and to close all open files
svn path=/trunk/boinc/; revision=16150