Volunteer computing

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Volunteer computing is a type of distributed computing,"an arrangement in which people, so-called volunteers, provide computing resources to projects, which use the resources to do distributed computing and/or storage".[1] Thus, computer owners or users donate their computing resources (such as processing power and storage) to one or more "projects".

Volunteers are frequently members of the general public in the possession of their own personal computers with a Internet connection, but also organizations can act as volunteers and provide their computing resources.

Projects in this context are mostly science-related projects executed by universities or academia in general.[2]

History[edit]

The first volunteer computing project was the Great Internet Mersenne Prime Search, which was started in January 1996.[3] 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,[4] Popcorn,[5] Superweb,[6] and Charlotte.[7]

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[8] or used in the Responsible IT forum.[9]

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) project was founded at University of California, Berkeley Space Sciences Laboratory, funded by the National Science Foundation. BOINC provides a complete middleware system for volunteer computing, including a client, client GUI, application runtime system, server software, and software implementing a project web site. The first project based on BOINC was Predictor@home, based at the Scripps Research Institute, which began operation in 2004. Soon thereafter, SETI@home and ClimatePrediction.net began using BOINC. A number of new BOINC-based projects were created over the next few years, including Rosetta@home, Einstein@home, and AQUA@home. In 2007, IBM World Community Grid switched from the United Devices platform to BOINC.[10]

Middleware[edit]

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 independent from 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 issues involving volunteered computers: their heterogeneity, their churn (the tendency of individual computers to join and leave the network over time), their sporadic availability, and the need to not interfere with their performance during regular use.

In addition, volunteer computing systems must deal with 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.

Drawbacks for participants[edit]

  • Increased power consumption: A CPU generally uses more electricity when it is active compared to when it is idle. Additionally, the desire to participate may cause the volunteer to leave the PC on overnight or disable power-saving features like suspend. Furthermore, if the computer cannot cool itself adequately, the added load on the volunteer's CPU can cause it to overheat.
  • Decreased performance of the PC: If the volunteer computing application runs while the computer is in use, it may impact performance of the PC. This is due to increased usage of the CPU, CPU cache, local storage, and network connection. 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.[11]

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 an option to limit the percentage of the processor used by the client, which is available in some client software.

Benefits for participants[edit]

  • Volunteer computing can provider researchers with computing power that is not achievable any other way. Approximately 10 petaflops of computing power are available from volunteer computing networks.
  • Volunteer computing is often cheaper than other forms of distributed computing.[12]

Importance of Volunteer Computing[edit]

Even though there are issues such as lack of accountability and trust between participants and researchers while implementing the projects, volunteer computing is crucially important, especially to projects that has limited funding.

  • Since there are more than 1 billion PCs in the world, volunteer computing can supply more computing power to researches, that doesn't have the required competencies regarding the computing power, on any kind of topic; such as academic (university-based) or scientific researches. Also, advancements in the technology will provide the advancements in consumer products such as PCs and game consoles happen faster than any other specialized products which will increase the number of PCs and computing power in the world consequently.
  • Supercomputers that have huge computing power are extremely expensive and are available only to some applications only if they can afford it. Whereas, Volunteer computing is not something that can be bought, it's power arises from the public support. A research project that has limited sources and funding can get huge computing power by attracting public attention.
  • Last but not least, by volunteering and providing support and computing power to the researches on topics such as science, citizens are encouraged to be interested in science and also citizens are allowed to have a voice in directions of scientific researches and eventually the future science by providing support or not to the researches.[13]

See also[edit]

References[edit]

  1. ^ https://boinc.berkeley.edu/trac/wiki/VolunteerComputing
  2. ^ https://boinc.berkeley.edu/trac/wiki/VolunteerComputing
  3. ^ "GIMPS History". Mersenne.org. Great Internet Mersenne Primes Search. Retrieved December 29, 2013. 
  4. ^ Sarmenta, L.F.G. (1998). "Bayanihan: Web-Based Volunteer Computing Using Java". Worldwide Computing and Its Applications — WWCA'98: Second International Conference Tsukuba, Japan, March 4–5, 1998 Proceedings. Lecture Notes in Computer Science. 1368. Springer Berlin Heidelberg. pp. 444–461. doi:10.1007/3-540-64216-1_67.  ISBN 978-3-540-64216-9 (print) ISBN 978-3-540-69704-6 (online)
  5. ^ O Regev; Noam Nisan (October 28, 1998). "The POPCORN market—an online market for computational resources". Proceedings of the first international conference on Information and computation economies (in Charleston, South Carolina). New York, NY: ACM Press. pp. 148–157. ISBN 1-58113-076-7. doi:10.1145/288994.289027. 
  6. ^ Alexandrov, A.D.; Ibel, M.; Schauser, K.E.; Scheiman, K.E. (1996). "SuperWeb: Research issues in Java-Based Global Computing". Proceedings of the Workshop on Java for High performance Scientific and Engineering Computing Simulation and Modelling. New York: Syracuse University. 
  7. ^ Baratloo, A.; Karaul, M.; Kedem, Z.; Wyckoff, P. (September 1996). "Charlotte: Metacomputing on the Web". Proceedings of the 9th International Conference on Parallel and Distributed Computing Systems. (Registration required (help)). 
  8. ^ Michael Porter; Mark Kramer. "The Link Between Competitive Advantage and Corporate Social Responsibility". Harvard Business Review. Archived from the original (PDF) on July 14, 2007. 
  9. ^ "ResponsI.TK". Responsible IT forum. 
  10. ^ "BOINC Migration Announcement". Aug 17, 2007. Retrieved December 29, 2013. 
  11. ^ Geoff Gasior (November 11, 2002). "Measuring Folding@Home's performance impact". Retrieved December 29, 2013. 
  12. ^ http://www.volunteer-computing.org/EN/why-use-volunteer-computing.html
  13. ^ https://boinc.berkeley.edu/trac/wiki/VolunteerComputing

External links[edit]