boinc/doc/presentation

119 lines
2.9 KiB
Plaintext

Global view
Projects
Applications
Scheduling server
Database
Project back end (interacts with scheduler via DB, files)
web server
Data servers
Clients
core client, applications, files
single download
preferences
Abstractions
projects
applications
Workunits -> input file descriptors -> files
Results -> output file descriptors -> files
file descriptors can give name/FD
files can have various properties
files up/downloaded to servers; may be "sticky"
client-generated scratch files; may be "sticky"
some files originate on servers and are sent to clients;
some files originate on client and are deleted after the WU
some files originate on client and become input for later WUs
some files originate on client and are uploaded (and maybe kept)
Results are generated in advance
(alternative: let clients fill in template)
Properties of workunits
disk/RAM max needs
IOPs/FLOPs/memBW needs
File transfer requests
Result sequences
Examples
SETI@home case: generate multiple results; generate more as needed
CP.com case: result sequences
normal case
interrupted/restarted case
access to large output files
How things work on the scheduling server
WUs and results described by XML files (has file, resource info)
user preferences described by XML files
file transfer requests described by XML files
DB keeps track of
apps
hosts
platforms
users
app versions
core versions
WUs
all input files available?
results
unsent/sent/completed/error/timed out
Host measurements
CPU: #cpus, int, FP, mem BW
mem: total, cache, swap
disk: total, free
network: bandwidth up/down. IP address history
on fraction
connected fraction
How we keep track of different hosts
RPC seqno
The scheduling server algorithm
Project back end: examples
How things work in the client
FSM model
network stack
processor slots
account file, client state file
main loop of client
When does the client ask for work?
hi/lo water marks
server backoff requests
failed connection backoff
What are user preferences?
max RAM to use while user active
confirm before connect?
don't compute while on batteries
min time between disk I/O
max disk space to use (absolute, or % of free)
list of projects
% of resources (disk, CPU)
hours to communicate/compute
max #bytes to upload each day
max #bytes to download each day
How are preferences adjusted?
Web interface
XML file
(extensible set of preferences w/o server change)
How a users starts up
How a user adds/removes projects
How a project starts up
Security mechanisms
Result validation and credit