BOINC
Cross Project Multiplier Proposal
Abstract
The BOINC client-server platform is used for multiple distributed
computing
project participation.
- Most BOINC project participants
only participate in less than 3 projects.
- Low overall participation rates
leave some projects with less computing power than they might otherwise
wish.
- In spite of BOINC Project Manager
websites being commonly available, their use is limited.
- Relatively few people sign up for
new projects (or manage the ones they are signed up with) with BOINC
Project Managers.
- At
the time of writing there are some 25 active BOINC projects with up to
30 in
development (but not accessible to the general public).
An
incentive mechanism is needed to rise cross project participation to
an average around 20, but be tweakable so that over time that it will
work for 50 to 500.
BOINC
Cross Project Multiplier Proposal
Implementation Requirements
- BOINC Project Manager Website (only Project Manager Websites can
implement this reward system)
- BOINC Server Software (Cross Project Multiplier is exclusively
implemented as a BOINC Project)
- Nominal bandwidth (probably under 1.11 MiB {per user/per year},
barebones interface)
Input requirements (from the Project Manager SQL Database)
- "Total Credits Rewarded Last 24hrs" (here to Credits)
- "Total RAC Rewarded Last 24hrs" (here to RAC)
- Number_user_projects (typically updated daily, at worse 50 hours,
probably an existing database field)
Processing requirements (MATH, Program logic -- probably PHP)
The mathematical foundation of Cross
Project Credit Multiplier
- Mathematical functions used: ABS(), SQRT(), LOG_e(), ROUND().
These are chosen so as to avoid consuming excessive CPU time. LOG_e()
was chosen because it is less deflationary than LOG_10(). All functions
except ROUND() have FPU support on most CPUs.
- Data Types: Credits, RAC, Cross_Project_Credit_24hrs_temp,
Cross_Project_Credit_24hrs: Single Precision
- Data Types: Number_user_projects: Unsigned Word
- Data Types: Next_User_Record: Database record of the next user,
not the current user whose Cross_Project_Credit_24hrs is being computed
The computations
- Cross_Project_Credit_24hrs_temp = [SQRT(ABS(Credits + RAC)) +
LOG_e(ABS(Credits + RAC))], but it is unclear if this is optimal for
over rewarding computing farms while punishing small single PC
partisipants
- Cross_Project_Credit_24hrs = [(Cross_Project_Credit_24hrs_temp)
* (Number_user_projects)]
- Cross_Project_Credit_24hrs = ROUND(Cross_Project_Credit_24hrs,
5)
Programming logic needed to avoid
unnecessary computations and other pitfalls. These instructions must be
run before all other computational logic
- If and only if [Credits < 0.95] and [RAC < 0.95] then go
to "Next User Record"
- If and only if [Credits > 9876.5] then [Credits =
8976.54321], this computational setup is needed to keep from overly
rewarding people using BOINC computing farms. This should be run after
Credits and RAC have been verified to be above 0.95. Credit
"Hyperinflation" must be avoided!
- NOTE: The Credits and RAC constants here are arbitrary but
based on known outputs from BOINC computing farms.
Output
- It would be assumed that the maximum Cross Project Credit
rewarded per each 24 hours to any user would be under 20.0
- It would be assumed that the an active user would get credit each
day around [1.9 ... 0.8], and that RAC for the Cross Project Credit
would be computed from these award numbers
- There is still some debugging of the concept yet to do, these
computations are by no means final.
Credit Granting Table (should be
subject to revision every 650 days)
"Number of Projects" user is
participating in
|
Cross Project Multiplier
|
Endnotes
|
1
|
1.000
|
Current 'Default'
|
2
|
1.022
|
|
3
|
1.0333
|
temp state change
|
4
|
1.044
|
|
5
|
1.0555
|
temp state change
|
6
|
1.067
|
state change
|
7
|
1.078
|
|
8
|
1.0895
|
state change
|
9
|
1.0997
|
|
10 ... 19 (not required to
implement)
|
1.1095
|
state change
|
| 20 ... 29 (not required to
implement) |
1.1456
|
|
| 30 ... 500 (not required to
implement) |
1.1815
|
must never exceed 1.205
|
Technical
references
BOINC General
reference
BOINC Technologies
Tables
showing typically low cross project participation
- Users under 10 projects
- Users 3 projects
Initial proposal
11 MAR 2006
Last Modified
26 JAN 2008
Created by
Max Power