Volunteer Computing

Volunteer computing is an arrangement in which people (volunteers) provide computing resources to projects which use the resources to do distributed computing and/or storage. Distributed computing is a field of computer science that studies distributed systems. A distributed system is a software system in which components, located on networked computers, communicate and coordinate their actions by passing messages.

Neural networks are very good candidates for simulation by distributed computing systems because of their inherent parallelism and beacuse its simulation is a very time consuming process, due to the complex iterative process involved.

The first volunteer computing project was the Great Internet Mersenne Prime Search, which was started in January 1996. The term volunteer computing was coined by Luis F. G. Sarmenta, the developer of Bayanihan.

The Berkeley Open Infrastructure for Network Computing (BOINC) is the most widely-used middleware system for volunteer computing. It offers client software for Windows, Mac OS X, Linux, and other Unix variants. The project was founded at the University of California, Berkeley Space Sciences Laboratory, funded by the National Science Foundation. Other systems are XtremWeb,  Xgrid and Grid MP.

Volunteer computing systems must deal with the following problems, related to correctness :

  • Volunteers are unaccountable and essentially anonymous
  • Some volunteer computers occasionally malfunction and return incorrect results
  • Some volunteers intentionally return incorrect results or claim excessive credit for results

A list of distributed computing projects is provided at Wikipedia. Links to a few selected BOINC volunteer computing projects are listed below :