-
Notifications
You must be signed in to change notification settings - Fork 449
BOINC overview
BOINC is a platform for distributed computing. It is designed to support 'high throughput computing': with large numbers of independent compute-intensive jobs, and the performance goal of high rate of job completion rather than low turnaround time of individual jobs. It also has features to support 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 required 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:
This includes power and air-conditioning infrastructure, network hardware, computing hardware, storage, electricity, and sysadmin personnel.
Based on the average throughput and budget of several volunteer computing projects.
It takes (very 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.
The volunteer computing projects using BOINC vary in terms of their organizational structure and the set of scientists they serve. Examples include:
-
Research group. The project is operated by a single research group, and serves the members of that group. Examples include SETI@home, Rosetta@home, and Einstein@home.
-
Application-centered research community. The project is operated by a single research group, but serves a broader community in that science area. Example: Climateprediction.net, which is based at Oxford but provides computing to researchers at other institutions.
-
Science Gateway. The project is operated by a science gateway, i.e. a web site that serves a particular scientific community, and that provides HTC as well as other functions. An example is nanoHUB.
-
Institutional umbrella project. The project is operated by an organization (university or research lab), and serves the researchers in that organization. For example, LHC@home servers multiple groups at CERN. An academic example (no longer operating) is the University of Westminster in London. This idea is elaborated on here.
-
HPC provider. The project is operated by an HPC provider such as a supercomputing center. It processes the provider's HTC jobs (i.e. the jobs that don't actually need a supercomputer), and serves the provider's clients that have HTC workloads. An example is Texas Advanced Computing Center (TACC).
There are advantages in having BOINC projects that are high in the organizational hierarchy, and that serve many scientists:
-
The cost of maintaining a BOINC project is roughly constant, regardless of its size. For large projects, the cost per scientist is lower.
-
Publicity options: high-level organizational entities typically have existing publicity mechanisms (e.g. alumni magazines, newsletters, etc.) that can be leveraged to recruit volunteers.
-
Longevity: the duration of one scientist's need for HTC is generally shorter than that of a group of scientists. There are benefits in having a project last a long time (e.g. amortizing the startup cost).
-
Continuity: similarly, one scientist's computing workload may be sporadic, while that of a group of scientists is more continuous. Some volunteers prefer projects with continuous workloads.