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 PCs.
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,
there is no way for a project to link them 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:
1) the volunteer trusts the project to
provide applications that don't damage their computer
or invade their privacy;
2) 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;
3) 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 at least 50 active projects.
Why is volunteer computing important?
It's important for several reasons:
-
Because of the huge number of PCs in the world,
volunteer computing can (and does) 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 electronics
(PCs and game consoles)
will advance faster than more specialized products,
and that there will simply 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
(such as SETI@home) 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 anology 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 much different from volunteer computing.
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.
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 actually involves storage and retrieval,
not computing1.
1 An exception: GPU
(Global Processing Unit) is a Gnutella client that allows users
to share CPU resources.
";
?>