PowerPoint - Department of Computer Science

advertisement
BOINC:
A System for Public-Resource
Computing and Storage
David P. Anderson
University of California, Berkeley
Paper overview
 Defines public-resource computing
 Introduces the BOINC platform
 Lists public-resource computing projects
using the BOINC platform
 Discusses BOINC implementation
Public-resource computing
 AKA global computing or P2P computing
 Combines the resources of personal
computers and game consoles belonging to the
general public to perform scientific
computations
 Started with
 Great Internet Mersenne Prime Search
(GIMPS) (1996)
 Distributed.net (1997)
Contrast with grid computing
 Grid computing involves "organizationallyowned resources"
 Centrally managed by IT professionals
 Powered on most of the time
 Connected by high-speed links
 Malicious behavior handled by organization
 None of that is true for public-resource
computing.
Specific requirements of
public-computing systems
 Redundant computing
 Against result falsification/fabrication
 Cheat-resistant accounting
 Support for user-configurable application
graphics
BOINC
 Berkeley Open Infrastructure for Network
Computing
 Developed at UCB Space Science
Laboratory by the SETI@home group
 SETI@home started in 1999 and still runs
today
Goals of BOINC (I)
 Reduce the barriers of entry to public-
resource computing:
 A project can be run from a single
computer running standard open-source
software
 Share resources among autonomous
projects:
 Each PC owner can join multiple projects
 Results in better resource utilization
Goals of BOINC (II)
 Support diverse applications:
 Offer various data distribution mechanisms
 Support various programming languages
…
 Reward participants:
 Mostly by giving them credits
 System must be cheating-resistant
 Also by offering nice graphics
 Great screensavers!
Projects using BOINC (I)
 SETIi@home:
search for intelligent extra-terrestrial life
 Predictor@home:
protein behavior
 Folding@home:
protein folding, misfolding, aggregation and
related diseases
 Climateprediction.net:
long term-climate prediction
Projects using BOINC (II)
 Climate@home.net:
long term-climate prediction
 CERN projects:
were to use in-house PCs
 Einstein@home:
gravitational waves
 UCB/Intel study of Internet resources
BOINC overview (I)
 Projects:
 Have a single master URL
 Can involve one or more applications
 They may change over time
 Server complex of a BOINC project
 Centered around a relational database
containing most project data
 Scheduling server daemons handles RPC
from by clients
 Data server daemons manage uploads
BOINC overview (II)
 BOINC offers tools for
 Creating, starting, stopping and querying
projects
 Adding new applications, new platforms, …
 Creating workunits
 Monitoring server performance
 Conceived to be used by scientists, not IT
professionals
BOINC overview (III)
 Participants join by registering with web site
of project and downloading the BOINC client
 Client can run as
 Screensaver (with fancy graphics)
 Window service (running in the background)
 Application (displaying results in tabular
form)
Describing computations and
data
 Applications:
 Can have different versions for different
participant platforms
 Consist of one or more files
 Workunits:
 Represent inputs to a computation
 Include parameters specifying
computational step requirements
 Results (obvious)
More details
 Files associated with
 Application versions
 Workunits
 Results
are immutable
 Files have numerous BOINC-specific
attributes
Client/scheduler interactions
 When a client interacts with a scheduling
server, it
 Reports completed work
 Gets a collection of workunits
Redundant computing (I)
 BOING supports redundant computing
 Projects can specify each workunit should
be executed N times
 If M  N executions agree on a particular
result, it becomes canonical
Redundant computing (II)
 Issues:
 Must prevent cheaters to create quorums
of fabricated results
 Each user can provide at most one result
for each workunit
 Must distinguish between erroneous results
and mere numerical variations
 Homogeneous redundancy:
Same workunit only sent to clients with
identical platforms
Failure and backoff
 Must prevent server overload after a failure
 Everyone wants to reconnect
 All client/server communication uses
exponential backoff after a failure
 Preents avalanches of requests
Participant preferences
 User general preferences let users specify
numerous parameters
 Including transfer limits (for participants
having monthly transfer limits) and CPU duty
cycles (for participants having overclocked
CPUs)
Credit and accounting
 To reward participants
User community features
 To motivate participant emulation
Platform diversity issues
 Maintains multiple versions of application
executables
 Participants may also request to recompile
applications before running them
 Anonymous platform mechanism
 Useful for
 Non standard platforms
 Paranoiac participants
Graphics and screensavers
 Client software appears monolithic to BOINC
participants but comprises four components:
 Core client: does the work
 Client GUI: provides a user-interface
showing computation progress and letting
participants quit and join projects
 API: report CPU usage and fraction done,
handle requests to provide graphics, …
 Screensaver
Local scheduling
 Decides which projects to run
 Goals include
 Maximizing resource usage
 Meeting result deadlines;
 Respecting resource share allocation among
projects of each participant
 Ensuring some ”variety” among projects
 Participants want to see progress in all
the projects they have joined
Conclusions
 It works
 More work still needs to be done
If you want to hear more
 David Anderson speaks about SETI@home
and BOINC
http://www.youtube.com/watch?v=8iSRLIKx6A
Download