David P. Anderson Space Sciences Laboratory University of California – Berkeley Designing Middleware for Volunteer Computing
Why volunteer computing? ● 2006: 1 billion PCs, 55% privately owned ● If 100M people participate: – 100 PetaFLOPs, 1 Exabyte (10^18) storage ● Consumer products drive technology – GPUs (NVIDIA, Sony Cell) your computers academic business home PCs
Volunteer computing history GIMPS, distributed.net commercial projects climateprediction.net BOINC BURP PrimeGrid...
Scientific computing paradigms Grid computing Supercomputers Volunteer computing Cluster computing ControlBang/buck least most
BOINC SETIphysics Climate biomedical Joe Alice Jens volunteers projects
Participation in >1 project ● Better short-term resource utilization – communicate/compute in parallel – match applications to resources ● Better long-term resource utilization – project A works while project B thinks project computing needs think work think work time
Server performance How many clients can a project support?
Task server architecture MySQL TransitionerScheduler Feeder File deleter DB purger Assimilator Validator Work creator Shared mem clients
Server load (CPU)
Server load (disk I/O)
Server limits ● Single server (2X Xeon, 100 Mbps disk) – 8.8 million tasks/day – 4.4 PetaFLOPS (if 12 hrs on 1 GFLOPS CPU) – CPU is bottleneck (2.5% disk utilization) – 8.2 Mbps network (if 10K request/reply) ● Multiple servers (1 MySQL, 2 for others) – 23.6 million tasks/day – MySQL CPU is bottleneck – 21.9 Mbps network
Credit
Credit display
Credit system goals ● Retain participants – fair between users, across projects – understandable – cheat-resistant ● Maximize utility to projects – hardware upgrades – assignment of projects to computers
Credit system ● Computation credit – benchmark-based – application benchmarks – application operation counting – cheat-resistance: redundancy ● Other resources – network, disk storage, RAM ● Other behaviors – recruitment – other participation
Benchmarks not whole story
Limits of Volunteer Computing ● How much processing/disk/RAM is out there? ● Combinations of resources ● Data from 330,000 participants
Goals of BOINC ● > 100 projects, some churn ● Handle big data better – BitTorrent integration – Use GPUs and other resources – DAGs ● Participation – million – multiple projects per participant