BOINC: A Platform for Volunteer Computing David P. Anderson University of California, Berkeley Space Sciences Laboratory Berkeley, CA 94720
[email protected] December 9, 2018 Abstract “Volunteer computing” is the use of consumer digital devices for high-throughput scientific computing. It can provide large computing capacity at low cost, but presents challenges due to device heterogeneity, unreliability, and churn. BOINC, a widely-used open-source middleware system for volunteer computing, addresses these challenges. We describe its features, architecture, and implementation. Keywords BOINC, volunteer computing, distributed computing, scientific computing, high-throughput computing 1. Introduction 1.1 Volunteer computing Volunteer computing (VC) is the use of consumer digital devices, such as desktop and laptop computers, tablets, and smartphones, for high-throughput scientific computing. Device owners participate in VC by installing a program that downloads and executes jobs from servers operated by science projects. There are currently about 30 VC projects in many scientific areas and at many institutions. The research enabled by VC has resulted in numerous papers in Nature, Science, PNAS, Physical Review, Proteins, PloS Biology, Bioinformatics, J. of Mol. Biol., J. Chem. Phys, and other top journals [1]. About 700,000 devices are actively participating in VC projects. These devices have about 4 million CPU cores and 560,000 GPUs, and collectively provide an average throughput of 93 PetaFLOPS. The devices are primarily modern, high-end computers: they average 16.5 CPU GigaFLOPS and 11.4 GB of RAM, and most have a GPU capable of general-purpose computing using OpenCL or CUDA. 1 The potential capacity of VC is much larger: there are more than 2 billion consumer desktop and laptop computers [2].