130 likes | 271 Views
BOINC: An Open Platform for Public-Resource Computing. David P. Anderson Space Sciences Laboratory U.C. Berkeley. Public-resource computing. Home PCs. your computers. academic. business. Challenges: low BW at client costly BW at server firewall/NAT issues sporadic connection
E N D
BOINC: An Open Platform for Public-Resource Computing David P. Anderson Space Sciences Laboratory U.C. Berkeley
Public-resource computing Home PCs your computers academic business • Challenges: • low BW at client • costly BW at server • firewall/NAT issues • sporadic connection • untrustworthy, insecure clients • server security • heterogeneity • need PR, glitzy GUI • Advantages: • scale • free • growth • public education • no policy issues
Why share an infrastructure? applications projects Research lab X University Y Public project Z resource pool • Participants install one program, select projects, specify constraints; • all else is automatic • Projects are autonomous • Advantages of a shared platform: • Better long-term resource utilization • Better instantaneous resource utilization • Faster/cheaper for projects, software is better • Easier for projects to get participants • Participants learn more
Goals of BOINC(Berkeley Open Infrastructure for Network Computing) • Public-resource computing/storage • Multi-project, multi-application • Participants can apportion resources • Handle fairly diverse applications • Work with legacy apps • Support many participant platforms • Small, simple
General structure of BOINC Project back end Retry generation Result processing BOINC DB (MySQL) • Project: • Participant: Work generation Result validation Garbage collection Scheduling server (C++) Web interfaces (PHP) data server (HTTP) data server (HTTP) data server (HTTP) App agent App agent App agent Core agent (C++)
Data model • File attributes: • Name • URL list • Persistent flag • Upload-when-present flag • Files may originate in client or in project work manager • Projects can use participant disks for long-term data archival
Computing model • Applications, platforms, app versions • Workunits • Inputs to a computation • Estimates of resource requirements • Results • Outputs of a computation
Hosts and scheduling • Host measurements • CPU performance (integer/FP/memory) • RAM, cache, disk free/total • On/connected statistics • Network bandwidth statistics • Workunit properties • RAM/disk/computation requirements • Scheduling policy • feasibility • High/low water mark
Accounting and result validation • Standardized unit of credit • CPU time * (int+FP+mem) • Project-specific benchmark? • Result validation • Compare redundant results, flag incorrect results • Granted credit: • Minimum of claimed credit among correct results
Participant preferences • Examples: • Work only while user away • Confirm before connecting • Don’t work if on batteries • High, low water marks • Limits on disk space, bandwidth • Application-specific preferences • List of projects + authenticators + % allocation • Edited via Web interface
Application Programming • Checkpoint/restart • Filename translation • Graphics • OpenGL-based • Application window or screensaver
Conclusion • BOINC status • Mostly feature-complete • Client runs on Linux, Solaris, Windows, MacOS X • Small: client is 5,000 lines, server 2,000 • Projects: • Astropulse (later this year) • Other SETI@home (Parkes etc.) • Folding@home, climate prediction • Others: rendering? Theorem proving?