Transcript boinc_intro
BOINC:
Getting Started
David P. Anderson
Space Sciences Lab
U.C. Berkeley
Sept. 10, 2008
What’s BOINC good for?
Applications
Resources
bags or streams of tasks
not data-intensive
your own desktop PCs
cluster nodes
volunteered PCs
What do you need?
a server (Linux box or VM player)
moderate sysadmin, DB, and programming skills
for public projects, web development
The project/volunteer model
BOINC-based projects
volunteer PC
World Comm. Grid
Attachments
Climateprediction.net
Rosetta@home
Superlink@Technion
Independent
No central authority
ID: URL
Ways to create a BOINC server
On a Linux box
In a VMware player
download BOINC software
configure/make
download the BOINC server VM image
On the Amazon EC2
use the BOINC EC2 server image (doesn’t exist
yet)
Anatomy of a BOINC server
sched/
tools/
Build source
code here
boinc/
make_project
projects/
test/
cgi-bin/
html/
user/
inc/
bin/
upload/
download/
apps/
log_hostname/
Web
stuff
daemons,
scripts
input,
output
files
applications
log files
Anatomy of a BOINC server: DB
platform
app
app_version
user
host
workunit
e.g. Linux/x86
a job; description of input files
result
an instance of a job; description of output files
How to see what’s in the DB
Web interfaces
admin
user
mysql interpreter
phpMyAdmin
Server processes
Clients
scheduler
(CGI)
shared
memory
(~1K jobs)
MySQL DB
feeder
(~1M jobs)
work generator
validator
assimilator
transitioner
db_purge
daemons
config.xml
project parameters and options
periodic tasks
daemons
Log files
One per daemon and task
Verbosity flags
Adding app versions
Each app version has a directory in
project/apps/appname/
update_versions
sign files
copy to download directory
create DB record
Secure code signing
Job template files
Input template
describes input files
logical and physical names
stickiness
resource requirements
replication parameters
Output template
describes output files
Submitting jobs
Move input files to download hierarchy
call create_work()
checksums input files
creates DB records
Can to this one at a time, in huge numbers, or
in a flow-controlled stream
Porting applications to BOINC
Add calls for
start, finish
checkpointing
filename resolution
Or: use the “BOINC wrapper” with any
executable (or set of executables)
Organizational issues
It takes some work to:
publicize your project
manage servers
interact with volunteers
Organizational possibilities:
a single scientist
a department or group of scientists
a university