There are two mechanisms to prevent the scheduler from
sending jobs that won't finish by their deadline.
Simple mechanism:
The client sends the interval x for which CPUs are projected
to be saturated.
Given a job with estimated duration y,
the scheduler doesn't send it if x + y exceeds the delay bound.
If it does send it, x is incremented by y.
Complex mechanism:
Client sends workload description.
Scheduler does EDF simulation, sees if deadlines are missed.
The only project using this AFAIK is BOINC alpha test.
Neither of these mechanisms takes coprocessors into account,
and as a result jobs could be sent that are doomed to
miss their deadline.
This checkin adds coprocessor awareness to the Simple mechanism.
Changes:
Client:
compute estimated delay (i.e. time until non-saturation)
for coprocessors as well as CPU.
Send them in scheduler request as part of coproc descriptor.
Scheduler:
Keep track of estimated delays separately for different resources
- client: fixed bug that computed CPU estimated delay incorrectly
- client: the work request (req_secs) for a resource is the min
of the project's share and the shortfall.
svn path=/trunk/boinc/; revision=17086
The bug caused the default language to be ignored if set to "English"
regardless of whether this was done through the browser or through a
cookie.
svn path=/trunk/boinc/; revision=17012
if it has a canonical result, not if it's been assimilated
(if the assimilator is not working, the latter causes
WUs to be hidden longer than needed)
svn path=/trunk/boinc/; revision=16986
(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
- Added translation awareness to view_profile.php
- Added translation awareness to show_user.php
- Added cacheability to the community_links() by splitting it into a function for getting the cacheable object "get_community_links_object()" and another for displaying it "community_links()"
- Added the community_links cacheable object to the cache in show_user.php
- Changed view_profile.php from being full-page cached to using data caching. Only the community_links object is cached as that is the only one containing heavy queries. All other queries are simple and will be cached at the SQL query cache level.
svn path=/trunk/boinc/; revision=16749
- Added ability to get a forum post title from the GET request as well as the POST request data (POST overwrites GET)
svn path=/trunk/boinc/; revision=16747
- web: check whether to show profile in separate function
from displaying profile; eliminate double headers
- scheduler: finish purge of redundant arguments
svn path=/trunk/boinc/; revision=16726