Volunteer computing
Encyclopedia
Volunteer computing is a type of distributed computing
in which computer owners donate their computing resources (such as processing power and storage) to one or more "projects".
,
which was started in January 1996. It was followed in 1997 by distributed.net
. In 1997 and 1998 several academic research projects developed
Java-based systems for volunteer computing;
examples include
Bayanihan, Popcorn, Superweb, and Charlotte.. Another similar concept is Sideband computing
which let a user to share his computing power while he is online.
The term "volunteer computing" was coined by Luis F. G. Sarmenta, the developer of Bayanihan. It is also appealing for global efforts on social responsibility, or Corporate Social Responsibility
as reported in a Harvard Business Review or used in the Responsible IT forum.
In 1999 the SETI@home
and Folding@home
projects were launched.
These projects received considerable media coverage, and each one
attracted several hundred thousand volunteers.
Between 1998 and 2002, several companies were formed with business models involving volunteer computing. Examples include Popular Power
, Porivo, Entropia
, and United Devices
.
In 2002, the Berkeley Open Infrastructure for Network Computing
(BOINC) opensource project was founded, and became the software running the largest public computing grid (World Community Grid
) in 2007.
of a single program that combined the scientific computation
and the distributed computing infrastructure.
This monolithic architecture was inflexible;
for example, it was difficult to deploy new application versions.
More recently, volunteer computing has moved to middleware systems
that provide a distributed computing infrastructure
independently of the scientific computation.
Examples include:
Most of these systems have the same basic structure:
a client program runs on the volunteer's computer.
It periodically contacts project-operated servers over the Internet,
requesting jobs and reporting the results of completed jobs.
This "pull" model is necessary because many volunteer computers
are behind firewalls that do not allow incoming connections.
The system keeps track of each user's "credit", a numerical measure
of how much work that user's computers have done for the project.
Volunteer computing systems must deal with several
problematic aspects of the volunteered computers:
their heterogeneity,
their churn (that is, the arrival and departure of hosts),
their sporadic availability,
and the need to not interfere with their performance
during regular use.
In addition, volunteer computing systems must deal with several related problems related to correctness:
One common approach to these problems is "replicated computing",
in which each job is performed on at least two computers. The results (and the corresponding credit) are accepted only if
they agree sufficiently.
These effects may or may not be noticeable, and even if they are noticeable, the volunteer might choose to continue participating. However the increased power consumption can be remedied to some extent by setting the option of desired processor usage percent, that is available e.g. in BOINC client.
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...
in which computer owners donate their computing resources (such as processing power and storage) to one or more "projects".
History
The first volunteer computing project was the Great Internet Mersenne Prime SearchGreat Internet Mersenne Prime Search
The Great Internet Mersenne Prime Search is a collaborative project of volunteers who use freely available computer software to search for Mersenne prime numbers. The project was founded by George Woltman, who also wrote the software Prime95 and MPrime for the project...
,
which was started in January 1996. It was followed in 1997 by distributed.net
Distributed.net
distributed.net is a worldwide distributed computing effort that is attempting to solve large scale problems using otherwise idle CPU or GPU time. It is officially recognized as a non-profit organization under U.S...
. In 1997 and 1998 several academic research projects developed
Java-based systems for volunteer computing;
examples include
Bayanihan, Popcorn, Superweb, and Charlotte.. Another similar concept is Sideband computing
Sideband computing
Sideband computing is a general term for an area of computer science that is related to the distributed computing and multiple communication channels....
which let a user to share his computing power while he is online.
The term "volunteer computing" was coined by Luis F. G. Sarmenta, the developer of Bayanihan. It is also appealing for global efforts on social responsibility, or Corporate Social Responsibility
Corporate social responsibility
Corporate social responsibility is a form of corporate self-regulation integrated into a business model...
as reported in a Harvard Business Review or used in the Responsible IT forum.
In 1999 the SETI@home
SETI@home
SETI@home is an Internet-based public volunteer computing project employing the BOINC software platform, hosted by the Space Sciences Laboratory, at the University of California, Berkeley, in the United States. SETI is an acronym for the Search for Extra-Terrestrial Intelligence...
and Folding@home
Folding@home
Folding@home is a distributed computing project designed to use spare processing power on personal computers to perform simulations of disease-relevant protein folding and other molecular dynamics, and to improve on the methods of doing so...
projects were launched.
These projects received considerable media coverage, and each one
attracted several hundred thousand volunteers.
Between 1998 and 2002, several companies were formed with business models involving volunteer computing. Examples include Popular Power
Popular Power
Popular Power was a company founded in January 2000 that solddistributed computing software for CPU scavenging. The company was led by Marc Hedlund, CEO, and Nelson Minar, CTO....
, Porivo, Entropia
Entropia, Inc. (company)
Entropia, Inc. was a company founded in 1997 that sold distributed computing software for CPU scavenging.Their product's server infrastructure was based on Microsoft Windows....
, and United Devices
United Devices
United Devices, Inc. was a privately held, commercial distributed computing company that focused on the use of grid computing to manage HPC infrastructures and enterprise cluster management...
.
In 2002, the Berkeley Open Infrastructure for Network Computing
Berkeley Open Infrastructure for Network Computing
The Berkeley Open Infrastructure for Network Computing is an open source middleware system for volunteer and grid computing. It was originally developed to support the SETI@home project before it became useful as a platform for other distributed applications in areas as diverse as mathematics,...
(BOINC) opensource project was founded, and became the software running the largest public computing grid (World Community Grid
World Community Grid
World Community Grid is an effort to create the world's largest public computing grid to tackle scientific research projects that benefit humanity...
) in 2007.
Middleware for volunteer computing
The client software of the early volunteer computing projects consistedof a single program that combined the scientific computation
and the distributed computing infrastructure.
This monolithic architecture was inflexible;
for example, it was difficult to deploy new application versions.
More recently, volunteer computing has moved to middleware systems
that provide a distributed computing infrastructure
independently of the scientific computation.
Examples include:
- The Berkeley Open Infrastructure for Network ComputingBerkeley Open Infrastructure for Network ComputingThe Berkeley Open Infrastructure for Network Computing is an open source middleware system for volunteer and grid computing. It was originally developed to support the SETI@home project before it became useful as a platform for other distributed applications in areas as diverse as mathematics,...
(BOINC). BOINC is the most widely-used middleware system, and is currently used by the World Community GridWorld Community GridWorld Community Grid is an effort to create the world's largest public computing grid to tackle scientific research projects that benefit humanity...
. It is open source (LGPL) and is developed by an NSF-funded research project located at the UC Berkeley Space Sciences LaboratorySpace Sciences LaboratoryThe Space Sciences Laboratory is an Organized Research Unit of the University of California, Berkeley. It is located in the Berkeley Hills above the university campus...
. It offers client software for Windows, Mac OS X, Linux, and other Unix variants. - XtremWeb is used primarily as a research tool. It is developed by a group based at the University of Paris - South.
- XgridXgridXgrid is a proprietary software program and distributed computing protocol developed by the Advanced Computation Group subdivision of Apple Inc that allows networked computers to contribute to a single task....
is developed by Apple. Its client and server components run only on Mac OS X. - Grid MPGrid MPGrid MP is a commercial distributed computing software package developed and sold by Univa , a privately held company based primarily in Austin, Texas...
is a commercial middleware platform developed by United DevicesUnited DevicesUnited Devices, Inc. was a privately held, commercial distributed computing company that focused on the use of grid computing to manage HPC infrastructures and enterprise cluster management...
and was used in volunteer computing projects including grid.orgGrid.orggrid.org was a website and online community established in 2001 that focuses on cluster computing and grid computing software for users. For the first 6 years of its history it operated several different volunteer computing projects that allowed members to donate their spare computer cycles to...
, World Community GridWorld Community GridWorld Community Grid is an effort to create the world's largest public computing grid to tackle scientific research projects that benefit humanity...
, Cell ComputingCell ComputingCell Computing is a now-defunct distributed computing project that was operated by NTT Data to perform biomedical research.It used the Berkeley Open Infrastructure for Network Computing platform, however it was initially launched using the United Devices Grid MP platform in 2002.The project ended...
, and Hikari Grid.
Most of these systems have the same basic structure:
a client program runs on the volunteer's computer.
It periodically contacts project-operated servers over the Internet,
requesting jobs and reporting the results of completed jobs.
This "pull" model is necessary because many volunteer computers
are behind firewalls that do not allow incoming connections.
The system keeps track of each user's "credit", a numerical measure
of how much work that user's computers have done for the project.
Volunteer computing systems must deal with several
problematic aspects of the volunteered computers:
their heterogeneity,
their churn (that is, the arrival and departure of hosts),
their sporadic availability,
and the need to not interfere with their performance
during regular use.
In addition, volunteer computing systems must deal with several related problems related to correctness:
- Volunteers are unaccountable and essentially anonymous.
- Some volunteer computers (especially those that are overclocked) occasionally malfunction and return incorrect results.
- Some volunteers intentionally return incorrect results or claim excessive credit for results.
One common approach to these problems is "replicated computing",
in which each job is performed on at least two computers. The results (and the corresponding credit) are accepted only if
they agree sufficiently.
Costs for volunteer computing participants
- Increased power consumption. A CPU that is idle generally has lower power consumption than when it is active. The desire to participate may also cause the volunteer to leave the PC on overnight, or to disable power-saving features like suspend. Additionally, if adequate cooling is not in place, this constant load on the volunteer's CPU can cause it to overheat.
- Decreased performance of the PC. If the volunteer computing application attempts to run while the computer is in use, it will impact performance of the PC. This is due to increased CPU contention, CPU cache contention, disk I/O contention, and network I/O contention. If RAM is a limitation, increased disk cache misses and/or increased paging can result. Volunteer computing applications typically execute at a lower CPU scheduling priority, which helps to alleviate CPU contention.
These effects may or may not be noticeable, and even if they are noticeable, the volunteer might choose to continue participating. However the increased power consumption can be remedied to some extent by setting the option of desired processor usage percent, that is available e.g. in BOINC client.
See also
- List of distributed computing projects
- Cloud computingCloud computingCloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility over a network ....
- Peer-to-peerPeer-to-peerPeer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...
- Citizen scienceCitizen scienceCitizen science is a term used for the systematic collection and analysis of data; development of technology; testing of natural phenomena; and the dissemination of these activities by researchers on a primarily avocational basis...
External links
- Wanted: Your computer's spare time physics.org, September 2009