Volunteer Computing David P. Anderson U.C. Berkeley Space Sciences Lab January 30, 2007
Volunteer computing ● Distributed computing using volunteered computers – Early projects: GIMPS, distributed.net, ● What makes volunteer computing hard? – anonymous, untrusted – heterogeneous, intermittent, high churn – require incentives ● What makes it interesting? – More/cheaper computing power than other paradigms – Leverages consumer product R&D – Education/outreach
BOINC ● Software platform for volunteer computing – Open-source (LGPL), NSF-funded – Supports wide range of application characteristics – Encourages multi-project participation ● Goal: create a new computing paradigm (not just a static set of projects) Volunteers Projects (constantly changing)
Some BOINC-based projects ● Climateprediction.net – Oxford; global climate change study ● – LIGO; gravitational wave astronomy ● – U. Washington; protein study ● – U.C. Berkeley; SETI ● – CERN; accelerator simulation ● – STI, U. of Geneva; malaria epidemiology ●...and about 30 others
Math-related projects ● SZATAKI (Budapest) – find all generalized binary number systems up to dimension 11 ● (Leiden Univ.) – Search for abc-triples: positive integers a,b,c such that a+b=c, a rad(abc), ● PrimeGrid, Riesel Sieve (Private) – find prime numbers of the form k2 n +1, k2 n -1 ● Rectilinear Crossing Number (Graz Univ. of Tech) – What is the least number of crossings a straight-edge drawing of the complete graph on n points in the plane?
Computing power and cost ● ~450,000 active computers ● Hardware cost: ~ $1/GFLOP (save 1000x) ● Future: game consoles (e.g. Playstation 3) – ExaFLOP computing feasible
BOINC client structure core client application BOINC library GUI screensave r local TCP schedulers, data servers
Computing and data models ● Server-side entities – application – platform – application version – job – job instance ● Files – immutable – may be replicated – sticky – digital signatures
Application types ● Standard – C/C++, slight mods for file I/O, checkpointing – graphics: supply OpenGL render function ● FORTRAN ● Legacy (no source code) – BOINC-supplied “wrapper” ● Compound applications – master, workers ● Scripted – actual program is contained in input file or command line
Work flow work generator assimilator validator BOINC