What is 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.
- Volunteers are typically members of the general public who own Internet-connected personal computers. Organizations such as schools and businesses may also volunteer the use of their computers.
- Projects are typically academic (university-based) and do scientific research. But there are exceptions; for example, GIMPS and distributed.net (two major projects) are not academic.
Several aspects of the project/volunteer relationship are worth noting:
- Volunteers are effectively anonymous; although they may be required to register and supply email address or other information, they are not linked to a real-world identity.
- Because of their anonymity, volunteers are not accountable to projects. If a volunteer misbehaves in some way (for example, by intentionally returning incorrect computational results) the project cannot prosecute or discipline the volunteer.
- Volunteers must trust projects in several ways:
- The volunteer trusts the project to provide applications that don't damage their computer or invade their privacy.
- The volunteer trusts that the project is truthful about what work is being done by its applications, and how the resulting intellectual property will be used.
- The volunteer trusts the project to follow proper security practices, so that hackers cannot use the project as a vehicle for malicious activities.
The first volunteer computing project was GIMPS (Great Internet Mersenne Prime Search), which started in 1995. Other early projects include distributed.net, SETI@home, and Folding@home. Today there are over 50 active projects.
Why is volunteer computing important?
It's important for several reasons:
- Because of the huge number (> 1 billion) of PCs in the world, volunteer computing can supply more computing power to science than does any other type of computing. This computing power enables scientific research that could not be done otherwise. This advantage will increase over time, because the laws of economics dictate that consumer products such as PCs and game consoles will advance faster than more specialized products, and that there will be more of them.
- Volunteer computing power can't be bought; it must be earned. A research project that has limited funding but large public appeal can get huge computing power. In contrast, traditional supercomputers are extremely expensive, and are available only for applications that can afford them (for example, nuclear weapon design and espionage).
- Volunteer computing encourages public interest in science, and provides the public with voice in determining the directions of scientific research.
How does it compare to 'Grid computing'?
It depends on how you define 'Grid computing'. The term generally refers to the sharing of computing resources within and between organizations, with the following properties:
- Each organization can act as either producer or consumer of resources (hence the analogy with the electrical power grid, in which electric companies can buy and sell power to/from other companies, according to fluctuating demand).
- The organizations are mutually accountable. If one organization misbehaves, the others can respond by suing them or refusing to share resources with them.
This is different from volunteer computing. 'Desktop grid' computing - which uses desktop PCs within an organization - is superficially similar to volunteer computing, but because it has accountability and lacks anonymity, it is significantly different.
If your definition of 'Grid computing' encompasses all distributed computing (which is silly - there's already a perfectly good term for that) then volunteer computing is a type of Grid computing.
For more information about Grid computing, visit CERN's Grid Café.
Is it the same as 'peer-to-peer computing'?
No. 'Peer-to-peer computing' describes systems such as Napster, Gnutella, and Freenet, in which files and other data are exchanged between 'peers' (i.e. PCs) without the involvement of a central server. This differs in several ways from volunteer computing:
- Volunteer computing uses central servers. There is typically no peer-to-peer communication.
- Peer-to-peer computing benefits the participants (i.e. the people sharing files). There's no notion of a 'project' to which resources are donated.
- Peer-to-peer computing usually involves storage and retrieval, not computing.