Set it to the timezone specified by the constant TIMEZONE
(in project.inc) or "UTC" if none specified.
- web: fix bugs in submit.php
svn path=/trunk/boinc/; revision=25693
- client: if acct mgr sends us an account with no authenticator,
show an error message instead of trying to attach
svn path=/trunk/boinc/; revision=25608
If you link your functions (init_result(), compare_results(),
cleanup_result()) with validate_test.cpp,
you'll get a program that you can run as
validate_test file1 file2
and it will compare the two files
(this works only for validators that expect 1 file per result).
I added a makefile, sched/makefile_validator_test,
that you can use for this.
- server: shuffle code so that the above doesn't need to
link MySQL libraries
- client: if we fetch a master file and it contains no scheduler URLs,
show a message of class INTERNAL_ERROR
- client/scheduler: make CUDA_DEVICE_PROP.totalGlobalMem a double,
and remove dtotalGlobalMem.
Although NVIDIA reports RAM size as a size_t,
there's no reason to store it as an integer after that.
svn path=/trunk/boinc/; revision=25542
compute capability 3.x.
Not sure if the parameters are right
(128 cores/proc, 2 flops/clock)
but they're better than nothing.
- web: don't allow user names that have leading or trailing white space,
or HTML tags, or are empty
svn path=/trunk/boinc/; revision=25485
show if a GPU type is excluded by configuration
- client: don't fetch work for a resource type if all instances
of that type are excluded
- web: don't use filter_var(, FILTER_SANITIZE_STRING)
to strip HTML tags from a string.
This escapes singles quotes also.
Use strip_tags() instead.
svn path=/trunk/boinc/; revision=25375
In addition to varying the hue,
cycle through 3 different luminance values (.5, .7, .9)
- web: update the wording of buffer-size preferences
svn path=/trunk/boinc/; revision=25162
- prompt user for DB user/passwd if DB updates needed
- error out immediately if any DB update fails
Fixes#1169, #1170
- create_work: check for duplicate <file_info>s in input template
NOTE: the input template syntax is pretty clunky
svn path=/trunk/boinc/; revision=24969
Report it (along with disk usage) in scheduler request messages.
This will allow the scheduler to send file-delete commands
if the project is using more than its share.
- client: add <disk_usage_debug> log flag
- create_work: add --help, show --command_line option
svn path=/trunk/boinc/; revision=24968
- web: show BBCode info in the same page, rather than target=new.
On Firefox, this opens a new tab but doesn't switch to it,
which makes it look like nothing happened.
svn path=/trunk/boinc/; revision=24622
parsing cc_config.xml
- client: if an <exclude_cpu> element in cc_config.xml
specifies a nonexistent app, show an error msg with
a list of existing app names
- web: increase the default mem limit from 64MB to 256MB
TODO: change user_hosts.php to show N at a time
svn path=/trunk/boinc/; revision=24593
are assumed to be for NVIDIA GPU apps;
plan class names containing 'ati' are assumed to be for AMD GPU apps.
Clauses for 'nvidia' were missing in a couple of places.
svn path=/trunk/boinc/; revision=24512
says whether the client is using account-based sandboxing.
Needed by vboxwrapper.
- web: don't show authenticator in Your Account page.
The problem with authenticators is that if a bad guys gets yours,
they can log in to your account even if you change your password.
Eventually we should not use them at all
(i.e. in cookies and sent to client).
- make_project: copy python stuff (e.g. bin/start) for web-only projects;
generate appropriate project.readme file for web-only projects.
svn path=/trunk/boinc/; revision=24447
(in sched_customize.cpp)
the flops_scale argument is intended to express the
GPU efficiency (actual/peak).
Pass appropriate values.
svn path=/trunk/boinc/; revision=24405
for when the job completed successfully but
one or more output files had permanent upload failures.
Show this state in web interfaces.
- sample_work_generator: check return value of count_unsent_results(),
so that we don't generate infinite work if there's a DB problem
- web: RSS feed shows news items from last 90 days, rather than 14
svn path=/trunk/boinc/; revision=24377
where work fetch didn't work right in the presence of
multiple GPUs and <exclude_gpu> config options.
For example: suppose:
- you have 2 GPUs and 2 projects
- Project A is excluded from GPU 1
- you have lots of jobs for project A
Then the client won't try to fetch jobs from project B.
The problem had 2 parts:
a) round-robin simulation wasn't taking GPU exclusions into account.
In the above example, it would think that both GPUs had jobs.
I fixed this by computing the # of GPUs from each project
is excluded, and using this in the RR simulation.
b) Once this was done, I needed to make the client
request GPU jobs from project B rather than project A.
I did this with following policy:
If a project has excluded GPUs of a given type,
and has a runnable job of that type,
don't ask it for more work of that type.
Notes:
- the policy in b) is crude, and it means that work-buffer
preferences are ignored in some cases.
- neither a) nor b) takes into account app-level exclusions.
I could fix both of these with a lot of work,
but I'd rather move to a model in which dissimilar GPUs
are modeled as different resources,
which would remove the need for the <exclude_gpu> mechanism
in the first place.
- web: remove extraneous ) at end of button tooltips
svn path=/trunk/boinc/; revision=24312
and other operations.
You can now designate a user as "manager" for a particular app.
They can then:
- control job-submit permissions for that app
- deprecate/undeprecate versions of the app.
- abort jobs for that app
You can also designate a user a manage for the project.
They can then edit permissions and quotas,
as well as performing the app-specific functions for all apps.
This is described here:
http://boinc.berkeley.edu/trac/wiki/MultiUser#Accesscontrol
This required some changes to the DB schema.
svn path=/trunk/boinc/; revision=24250
- scheduler: when using elapsed time stats to predict runtime,
cap the estimated FLOPS at twice the peak FLOPS;
otherwise, if a host has received a lot of very short jobs
recently, it will get a too-high FLOPS estimate and
will exceed the rsc_fpops_bound limit.
svn path=/trunk/boinc/; revision=24128
- one of their posts is moderated
- a banishment vote starts or completes.
This is needed in cases where the user can't or doesn't
read email to their account's address.
The "from" address of the PM is that of the user, not the moderator.
svn path=/trunk/boinc/; revision=23941
which prevented the client from cleaning up
subprocesses of misbehaving multiprocess apps.
- remote job submission system:
assign physical names to input files (based on their MD5)
rather than having the user provide physical names
- VM apps: eliminate vbox64 plan class. Only vbox.
svn path=/trunk/boinc/; revision=23923
- client: cc_config.xml: if <devnum> is omitted from a <exclude_gpu>,
it means exclude all instances of that GPU type
- client: if all instances of a GPU type are excluded for a project,
don't ask the project for jobs of that type
svn path=/trunk/boinc/; revision=23898
- add fields to batch table, extend APIs accordingly
- require that example web interface run on BOINC server
(this makes many things easier;
an actual remote interface would require a bit more work)
svn path=/trunk/boinc/; revision=23881
and controlling batches of jobs
- web: add an administrative interface for controlling
user permissions for submitting jobs
- web: add an interface where users can view and control
their submitted jobs
See: http://boinc.berkeley.edu/trac/wiki/RemoteJobs
This is at a functional but rough stage.
svn path=/trunk/boinc/; revision=23762
Problems with the old version:
- Lots of info encoded in file and directory names: messy kludge
- The convention that directory name == main program name
created a bad situation when using the wrapper:
if you made a new version of your application,
you were forced make a new version of the wrapper
just so it could have a different name.
The new version is described here:
http://boinc.berkeley.edu/trac/wiki/AppVersionNew
- Remove some Python code that suppored the old version
- client: some fixes to dir_size() that might fox
a buffer overflow when using symbolic links
svn path=/trunk/boinc/; revision=23525
Old:
If the AM sends us a project we're already attached to,
and the authenticator is different,
print an error message and don't change anything.
Problem:
If the AM is using weak authenticators,
and the user has changed their password,
the weak authenticator changes.
In this case the AM will send the new weak auth,
the client will ignore it,
and all subsequent scheduler RPCs will fail
until the user removes/adds the project.
Solution:
If the AM sends us a new auth for a project, use it.
Note:
From the time the password is changed on the project
to the next AM RPC,
the client will have a bad weak auth and scheduler RPCs will fail.
That's OK.
client/
acct_mgr.cpp
svn path=/trunk/boinc/; revision=23479
remove funky "log out" link from user page
- web: go to home page on logout,
not dorky "you are logged out" page
svn path=/trunk/boinc/; revision=23387
- client: if PREFS::max_ncpus_pct is 0, don't set it to 100;
doing so prevents PREFS::max_ncpus from having any effect.
svn path=/trunk/boinc/; revision=23355
whether news items are exported as notices.
The creator of a news item is shown a "Don't export" or "Export"
button on the thread page.
By default, news items are exported.
svn path=/trunk/boinc/; revision=23119
- in friend request notification, link to user page
- in user page, show ID
- remove "Account data for " in page title
svn path=/trunk/boinc/; revision=23112
http://setiathome.berkeley.edu/help.php?key=Viagra.uk
all over the web, Google will list "Viagra.uk" in your site outline (why??).
Preliminary checkin for dealing with this.
svn path=/trunk/boinc/; revision=23008
This allows a user to delete all traces of themselves from a project.
Namely:
- clear fields of user record: email_addr, authenticator,
name, country, postal_code
Note: record is not deleted
- clear the domain_name and last_ip_addr fields of hosts
Note: records are not deleted
- quit team
- delete private messages sent and received
- delete forum posts, subscriptions, and forum prefs
- delete profile and associated images
- server: compile fix
svn path=/trunk/boinc/; revision=23006
that need it, then exits.
For big projects coming up after an outage, run this before bin/start
to minimize startup overload
- tweaks to PHP libraries to allow them to be used
by scripts anywhere in the dir hierarchy
svn path=/trunk/boinc/; revision=22959
(in config.xml) to include DB name, user, and password.
- back end: add read-only replica info to SCHED_CONFIG,
so that C++ programs can use the replica
(currently only PHP code can use it)
- db_dump: use the read-only DB replica if it exists.
svn path=/trunk/boinc/; revision=22958
"accelerate GPU tasks by dedicating a CPU to each one".
Enable this by putting
$accelerate_gpu_apps_pref = true;
in html/project/project.inc
svn path=/trunk/boinc/; revision=22657
about the message (sender, title, or content)
- user web: don't send an RSS item for a thread with no posts (i.e., hidden)
- client simulator: support global_prefs_override.xml
svn path=/trunk/boinc/; revision=22545
cmdline arg.
Suppresses the fetch of project list and of current client version #.
Use when running on grid nodes.
- debugging on client simulator. Not done yet.
svn path=/trunk/boinc/; revision=22414
use it a prefix for forms that include passwords,
namely login_form.php and create_account.php.
Typically SECURE_URL_BASE would start with "https://".
svn path=/trunk/boinc/; revision=22307
creation scripts to ensure they refer only to local pages
(i.e. they don't contain "://").
This prevents cross-site scripting attacks (I think).
svn path=/trunk/boinc/; revision=22300
when they were suspended without "leave in memory" pref
- user web: if in-progress result has credit, show it; fixes#998
svn path=/trunk/boinc/; revision=21748
Data from S@h beta (running for a month or so)
suggests that this will almost exactly match the
average credit granted by S@h's old system
(which, in theory, is the reference for other projects)
svn path=/trunk/boinc/; revision=21727
There are now separate flags for
"file_xfers_suspended": don't do file transfers
"network_suspended": don't do any network comm
(scheduler RPCs, RSS fetch, master fetch, etc.)
The policy:
if preferences/settings say no network
(quota exceeded, no-network mode, user active, time, excl. app)
then:
file_xfers_suspended = true
if (no recent network-related RPC) network_suspended = true
- user web: code cleanup for project prefs
svn path=/trunk/boinc/; revision=21299
Some of them allow only 1 CUDA context at a time.
You need to create a CUDA context to get available VRAM.
So the client would run a CUDA job, then immediately kill it.
Solution:
- If a GPU app is running,
let it keep running regardless of available VRAM
(if it's still running, it has enough VRAM).
- But don't start new apps if there's not enough available VRAM,
or it the amount is unknown
(if the client can't create a CUDA context,
the app won't be able to either)
- client: if <coproc_debug> is set, print available GPU RAM periodically
svn path=/trunk/boinc/; revision=21253
to multiple jobs at the same time.
I fixed one error (reference arg to assign_coprocs())
but I can't see why this would explain the problem.
I added a lot of extra <coproc_debug> log messages.
- user web: give scientists moderator privileges
svn path=/trunk/boinc/; revision=21158
see http://boinc.berkeley.edu/trac/wiki/CreditNew
Projects will need to update DB and recompile all back-end programs.
Summary:
- new way of computing credit
- "reliable host" mechanism is per app version
- "host punishment" mechanism is per app version
- adjustment of wu.rsc_fpops_est provides the
equivalent of per app version DCF
- max jobs in progress is now per app
- max jobs per RPC is now per app
TODO:
- reliable mechanism:
- populate and use host_app_version.error_rate
- populate host_app_version.turnaround
- host punishment:
- populate host_app_version.max_jobs_per_day
- populate host_app_version.n_jobs_today
- use app.max_jobs_per_day_init
- job limits:
- use app.max_jobs_in_progress, max_gpu_jobs_in_progress
- use app.max_jobs_per_rpc
- adjust wu.rsc_fpops_est
- remove old credit stuff
fpops_cumulative, credit_multiplier
credit computation in scheduler
- AVERAGE class: use the Knuth algorithm (Wikipedia)
svn path=/trunk/boinc/; revision=21021
or an auth_ops() function (not necessarily both).
New projects are given an .htaccess file with no .htpasswd,
so they must either create a .htpasswd file
or define auth_ops() in order to use admin web pages.
svn path=/trunk/boinc/; revision=20671
and team names are represented.
In particular, edit_user_info_action.php was using
htmlentities() on names; this led to double-encoding.
The new rules:
1) no HTML tags allowed in either one.
This is enforced silently, using strip_tags()
2) names are stored in the DB exactly as entered.
They may contain chars like & and >.
They may contain non-ASCII characters
(use UTF-8 if you want them displayed correctly).
None of these are not escaped.
3) When the names are put in XML
(e.g. in scheduler reply or db_dump output)
they are XML-escaped.
This escapes <, &, and non-ASCII chars
4) The client leaves them in this form,
and writes them that way in GUI RPCs
and init_data.xml files.
5) The parsing of GUI RPC replies and init_data.xml files
XML-unescapes them.
svn path=/trunk/boinc/; revision=20647
"There is a bug in tra() that causes problems if one of the arguments
contains a replacement marker itself. For example, if the first
argument contains an encoded URL, which contains '%2', the second
argument may appear in the middle of the URL."
- client simulator: further fiddling around. Not done.
svn path=/trunk/boinc/; revision=20201
10000*major + 100*minor + release,
rather than 100*major + minor.
Sometimes you need release-level resolution.
This affects:
- app_version.min_core_version
- config: min_core_client_version_announced
- config: min_core_client_version
Projects using these must multiply them by 100.
svn path=/trunk/boinc/; revision=20149
if project has crazy DCF, don't automatically request 1 sec;
only request work if there's a shortfall.
- intermediate checkin for notices stuff
svn path=/trunk/boinc/; revision=20145
sends the first rather than last 64KB of stderr to server.
This doesn't belong here; this choice should come from the server.
I may take this out later.
- user web: when add a private message, always add a notification
svn path=/trunk/boinc/; revision=20141
Old: in a flat file (html/project/project_news.inc)
New: in a forum (called "News" by default)
The script html/ops/news_convert.php copies news from
old to new format.
You'll also need to edit your index.php and use
"show_news(0, 5)" to show news.
- web: added a "message of the day" mechanism.
Edit html/user/motd.php to show a message.
This will be shown as the first news item,
but it's not archived (i.e., it's not a forum post)
svn path=/trunk/boinc/; revision=19949
the BOINC stylesheet (main.css) was included.
This is no good if we're exporting the HTML.
Add an option to generate generic HTML.
- web: add options to the forum RSS feed:
1) threads_only: just show threads (i.e. 1st post in each thread)
2) truncate: truncate posts to 256 chars.
If this is not set, convert post from BBcode to generic HTML,
and put this (XML-encoded) in item.description
This is preparation for using the forum code for project news,
and for displaying forum RSS feeds in the manager.
svn path=/trunk/boinc/; revision=19915