Volunteer Computing

June 20, 20245 min read

Most CPU capacity is now redundant. The shrinking of computer chips as they become more powerful means that the average laptop can run programs that require processing power more and more smoothly, decreasing latency on, for example 3D games. In fact, more often than not, the loading speed of a webpage is limited by the bandwidth, and when the dreaded loading circle appears on a video, the signal or connection strength is usually the culprit, not lack of processing power. Other laptop components operate using much of their capacity to do their jobs, such as rapidly change pixel colour, but the CPU only makes use of a measly 10–20% of its potential.

Now envisage yourself as a scientist working in a calculation-intensive field. You might need to understand how proteins change shape, or comb through vast amounts of observatory data to find signals from rare types of stars. These calculations would take years if run on a typical, or even high-end, computer. How can you extend your knowledge or confirm your hypotheses in days rather than decades?

One available option is to use a supercomputer. They can operate more than a million times faster than a normal computer and are optimised for number-crunching, unlike general-purpose computers which must perform other functions such as rendering graphics and connecting to numerous input/output devices. However, they are very expensive, and, because of this, there are few supercomputers available for researchers in spite of high demand for them. This has led researchers to ask the online community for help. This alternative is known as volunteer computing.

The process works as follows. First, a server will split the task into jobs - small, self-contained parts of the task which can be run on a single computer. These will then be sent to participants. Volunteers must install a client to participate. This client will run calculations in the background of the volunteer’s computer and will send the results of the job back to the central server when it has finished. Apart from computer-construction enthusiasts, who can use these calculations as benchmarks for competitions amongst themselves about who can process more jobs in a given amount of time, there is no benefit for participating volunteers. However, the client also ensures that volunteers are not negatively impacted by the computations. Clients can be set to use a limited amount of processor time or pause computation when a CPU-intensive program, such as a game or video editor, is running. This avoids overheating processing units or excessively impairing performance.

Compared to the lengthy times taken to obtain usage of a supercomputer, volunteer computing is a much swifter process for researchers. Researchers only need to establish the job distribution network and attract participants. To make things even easier, pre-existing systems that cater to a variety of research projects make crowdsourcing computing power even more convenient for the researcher. The Berkeley Open Infrastructure for Network Computing (BOINC) is one such framework, supporting projects as diverse as simulations of neuron activity and attempts to prove mathematical conjectures by exhaustion. Counting all its computers as one, the system averages approximately 15 petaFLOPS (15 quadrillion floating-point operations per second). 1

Nevertheless, volunteer computing does have some issues. Most obviously, the project must be dividable into independent parts that an average computer can complete within a reasonable time period. Moreover, sensitive information cannot be processed this way because participants can read data sent to them and there are almost no barriers to participation. Servers also cannot guarantee a completion time for a single task: calculation speed is unpredictable, varying widely owing to the variety of hardware setups and processing units; and volunteers can forget to submit jobs or pause calculations for extended periods of time. In the end, servers may need to reassign jobs if results are not received within a given amount of time, further increasing the time taken for the process. Even more problematically, participating computers can be faulty and return erroneous results for calculations. Some malicious users may even fabricate incorrect results deliberately. To mitigate this, each job can be given to two or more computers to verify that the result is correct but this takes even more time and is more complex in terms of implementation, although still less time-consuming than waiting to access a supercomputer.

The first volunteer computing project iswas the Great Internet Mersenne Prime Search (GIMPS) launched in 1996 and still in operation today.2 It attempts to find very large primes, specifically Mersenne primes, by assigning participants possible candidate primes to check for their factors. Other networks soon followed. Now, hundreds of volunteer computing initiatives exist, some independent, some running on shared infrastructure. Each computer is slow compared to a dedicated supercomputer, but the combined speed cannot be dismissed: Folding@home, which simulates proteins to find causes of diseases and genetic disorders, has consistently been one of the fastest computer systems on the planet since 2005, currently averaging 19 petaFLOPS.3

Although only a small fraction of computer users donate their machines’ processing power to volunteer computing projects, that amounts to a considerable number of people and an incredible amount of processing power. Even with an old laptop, you can and should volunteer your unused CPU power to help researchers do their work with its incredible potential.