University of California, Berkeley Volunteer Computing David P. Anderson Space Sciences Lab University of California, Berkeley
Scientific computing Consumer electronics BOINC
Scientific computing High-performance computing (HPC) High-throughput computing (HTC) Many independent jobs Rate of job completion matters, not per-job turnaround time
HTC applications Simulation of physical systems particle collisions atomic/molecular (bio, nano) Earth climate system Need for many jobs: Uncertainty (perturbed initial conditions) Parameter sweeps Fit model parameters to observed data
HTC applications Compute-intensive data analysis Particle colliders (LHC) Astrophysics pulsar search gravitational wave search Genomics
Units of computing speed Floating-point operation (FLOP) GigaFLOPS (109/sec): 1 Central Processing Unit (CPU) TeraFLOPS (1012/sec): 1 Graphics Processing Unit (GPU) PetaFLOPS (1015/sec): 1 supercomputer ExaFLOPS (1018/sec): current Holy Grail
Approaches to HTC Supercomputing Cluster computing Grid computing lots of closely-coupled processors Cluster computing lots of Ethernet-connect PC-type nodes in a room Grid computing share clusters between organizations Cloud computing rent cluster nodes, e.g. Amazon EC2 Volunteer computing use computers owned by consumers
Consumer electronics Computing devices Commodity Internet Desktop and laptop computers Mobile: tablets, smartphones Game consoles Set-top boxes, DVRs Wearable (watches, glasses) Appliances Commodity Internet Cable, DSL, fiber to the home, cell networks
Performance potential 1 billion Desktop/laptop PCs CPUs: 10 ExaFLOPS GPUs: 1,000 ExaFLOPS 5 billion smartphones CPUs: 20 ExaFLOPS GPUs: 500 ExaFLOPS
Volunteer computing Consumers donate computing capacity to History support science be in a community compete History 1997: GIMPS, distributed.net 1999: SETI@home, Folding@home 2003: BOINC
Cost of 1 TeraFLOPS/year
BOINC: middleware for volunteer computing Supported by NSF since 2002 Open source (LGPL) Based at UC Berkeley http://boinc.berkeley.edu
Volunteer computing with BOINC projects volunteers LHC@home CPDN attachments WCG volunteer computing “ecosystem”
Volunteer computing today 500,000 active computers 50 projects 10 PetaFLOPS
Some BOINC-based projects IBM World Community Grid Climateprediction.net (Oxford) LHC@home (CERN) SETI@home (UC Berkeley) Rosetta@home (U. Wash) Einstein@home (Max Planck Inst.)
How BOINC works project home PC BOINC server BOINC client get jobs BOINC server download data, executables BOINC client run jobs upload output files report/get jobs … all over HTTP
Handling heterogeneity job app app versions platform
Using GPUs BOINC detects and schedules GPUs Issues NVIDIA, AMD, Intel multiple/mixed GPUs various language systems (CUDA, OpenCL, CAL) Issues non-preemptive GPU scheduling no paging of GPU memory identifying GPUs
BOINC on Android New GUI Battery-related issues Released July 2013 Google, Amazon App Stores ~100K active devices Branded versions HTC: Power to Give Samsung: Power Sleep
Contact info http://boinc.berkeley.edu davea@ssl.berkeley.edu