Volunteer computing
Encyclopedia
Volunteer computing is a type of distributed computing
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 Search
Great 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 consisted
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:
  • 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). BOINC is the most widely-used middleware system, and is currently used by the 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...

    . It is open source (LGPL) and is developed by an NSF-funded research project located at the UC Berkeley Space Sciences Laboratory
    Space Sciences Laboratory
    The 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.
  • Xgrid
    Xgrid
    Xgrid 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 MP
    Grid MP
    Grid 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 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...

     and was used in volunteer computing projects including grid.org
    Grid.org
    grid.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 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...

    , Cell Computing
    Cell Computing
    Cell 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 computing
    Cloud computing
    Cloud 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-peer
    Peer-to-peer
    Peer-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 science
    Citizen science
    Citizen 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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK