Philosophy and Economies
of Collective Computing
In the past half century, digital computers have evolved from multi-million
dollar behemoths housed in giant environmentally controlled rooms visited only
by the privileged few, to a commodity resource found in more than half the
households in some major industrialized nations [1].
Prior to the introduction of the personal computer in the late 1970's,
computing power was primarily used by the academic community for research
purposes. Mundane time-consuming tasks were delegated to the institution's
computing facility, rather than being handled by an individual or team of
individuals. The benefits in terms of saved time were enormous, although at a
great cost due to the rarity of computers and the demand for time on those
computers.
The concept of the personal computer brought this time-saving device to the
desktop of the individual. The earliest personal computers had but a fraction
of the power of a typical mainframe computer installation, but the power was
immediately available at any time. As the power of the personal computer
increased at an exponential rate [2], it became increasingly practical for
researchers to simply use their own desktop computer instead of a shared
mainframe resource.
In the 1990's, with the advent of public accessibility of the Internet, another
change has taken place at least as significant as the introduction of the
personal computer. Many millions of personal computers are now connected to one
another on a part-time basis, and it is becoming increasingly common for those
computers to be connected continuously.
This great leap in connectivity has made it possible to reintroduce the concept
of a shared computing resource. However, this resource is not a mainframe
computer with its own limited resources - it is the combined power of all the
connected computers worldwide. With the massive growth of the Internet [3],
this computing resource is virtually unlimited.
The Internet is not only growing in number of connected computers. Advances in
technology offer continued growth in processor speed, fast storage (RAM), bulk
storage (hard drives), and communications bandwidth; advances in manufacturing
continue to lower the associated cost. The price of some computer hardware
items such as memory are showing signs of stabilizing, indicating that a
commodity market for computer hardware will soon be a reality.
In order to take advantage of these vast computing resources, a suitable
infrastructure must be put into place. This infrastructure must offer the
following characteristics:
- Generality
- Accessibility
- Scalability
- Integrity
- Security
Generality. This refers to both capability and implementation. Capability
generality is to the ability for the virtual machine to handle a wide variety
of tasks. Whether it is an extensive simulation, or solving a billion
equations, or performing trillions of lengthy calculations, the machine must be
able to adapt to the problem. Implementation generality is a more practical
concern: The individual program that is run on each machine must be portable to
different computer architectures.
Accessibility. The resources of the virtual machine must be freely available to
users, and it must be easy for individuals to participate by offering their own
computing services. There cannot be any cost associated with the computing
services of the virtual machine, because that cost would rapidly drop to
negligible amounts due to advancements in technology and manufacturing, and
expansion of the virtual machine. The bookkeeping cost would eventually exceed
the cost of the service.
Scalability. The virtual machine must be designed to support unbounded
expansion in computing power. A hierarchical control structure supports this
characteristic.
Integrity. It must be possible to set on arbitrarily high level of confidence
in the correctness of results, and for the virtual machine to meet or exceed
that level. This would be implemented through simple double-checking (or,
generally, N-checking) or more complex assurances of work performed [4].
Security. The virtual machine must be resistant to malicious activities that
could compromise its correct operation. Additionally, individuals who offer
computing resources must have some way of ensuring that the operations
performed on their own computer will not compromise other activities on their
computer.
With a suitable architecture and infrastructure, the collective computing
resources of millions of today's otherwise idle computers can be offered to
anybody who would like to put it to use. The reliability of results can be
assured to any degree of confidence, and the security of individuals' computers
can be maintained.
Notes
[1] Recently the news has reported that over 50% of US households now have a
personal computer.
[2] Moore's Law states that for a given cost, the amount of computing power
available for that cost doubles approximately every eighteen months.
[3] The Internet Domain Survey at http://www.nw.com claims over 43,000,000
connected computers ("hosts") as of January 1999. The data collected by this
survey clearly shows an exponential growth trend.
[4] Zero-knowledge proofs are one way to establish that assigned work has been
done to an arbitrarily high confidence level. Full double checking is one type
of zero-knowledge proof.
v0.1 by Greg Hewgill
© Mithral Communications & Design Inc.
1995-2008.
All rights reserved.
Mithral® and Cosm® are trademarks of
Mithral Communications & Design Inc.