-
Notifications
You must be signed in to change notification settings - Fork 511
BOINC overview
BOINC is a platform for distributed computing. It's designed to support 'high throughput computing', in which there are large numbers of independent compute-intensive jobs, and the performance goal is high rate of job completion rather than low turnaround time of individual jobs. It also supports distributed data storage and distributed parallel computing.
BOINC has a client/server architecture. The server distributes jobs, while the client runs on 'worker nodes', and execute jobs. BOINC can use worker nodes that are:
- Heterogeneous: they have different processor and GPU types different operating systems (Windows, Mac OS, Linux, Android).
- Sporadically available.
- Untrusted: they may return incorrect computational results.
- Large scale: millions or more worker nodes.
Hence BOINC is well-suited to volunteer computing in which the computing resources are consumer devices (desktop and laptop computers, tablets, phones, game consoles, appliances) volunteered by their owners.
It can also be used with organizational desktop resources (the PCs in a company or university) or with data-center resources (clusters or clouds), or with any combination of resources.
BOINC can run most existing HTC applications with minor modifications, including those that use GPUs and/or multiple CPU cores. It can use virtual machines to run unmodified Linux applications on Windows and Mac worker nodes. It efficiently supports applications that use large data files, or that require large amounts of memory.
BOINC can be used as a 'back' end for existing job-submission systems such as HTCondor; details are here.
BOINC is distributed under the LGPL v3 open-source license. It can be used for any purpose (academic, commercial, or private) and can be used with applications that are not open-source.
BOINC was created to provide scientists with large computing power at a small cost. One study found the following costs for a particular workload:
- Use Amazon's Elastic Computing Cloud: $175 Million
- Build a cluster: $12.4 Million. This includes power and air-conditioning infrastructure, network hardware, computing hardware, storage, electricity, and sysadmin personnel.
- Use BOINC: $125,000. This is based on the average throughput and budget of several volunteer computing projects.
It takes roughly three man-months to create a volunteer computing project using BOINC: one month of an experienced sys admin, one month of a programmer, and one month of a web developer. Once the project is running, budget a 50% FTE (mostly system admin) to maintain it. In terms of hardware, you'll need a mid-range server computer and a fast connection to the commercial Internet.