Distributed computing: allowing you to save the world while you sleep
Computer time has long been considered an essential resource in
conducting in silico simulations, either replacing or complementing
traditional experiments. So what’s a researcher to do when
supercomputer time costs millions of dollars and the supercomputers
themselves cost billions? Sadly, not everybody has a spare computing behemoth
lying around in their back yard to loan out to starving researchers.
In recent years, thanks to the power of the Internet, the idea of
harvesting unused CPU cycles from volunteer computers has become not
just a possibility, but a practicality. Most computers, whether at
home or at work, are not utilized to their full capacity. Web browsing
and reading email hardly count as taxing duties for today’s state of
the art computers with processor power several orders of magnitude
greater than what was available 30 years ago.
Distributed computing has been around since 1997, when an early
attempt harnessed volunteer computers to crack an encryption key
similar to trying every concievable combination on a number lock,
by by trying every possible combination. Ordinarily, this would be impossible for a single computer to attempt within a human lifetime, but with the huge amount of
processing time available, the search was hastened by several orders of magnitude, making it a feasible prospect.
Today, this approach has been applied to many diverse problems in
different scientific fields, ranging from mathematics, astronomy,
physics, and of course, life sciences. Two examples include the IBM
World Community Grid, involved in numerous projects including research
into a potential cure for cancer and anti-AIDS drugs, and the
Rosetta@Home project, analyzing protein structures.
These projects are managed by front-end software called BOINC, the
Berkeley Open Infrastructure for Networked Computing. Problems too big
for a single computer to tackle, such as searching vast amounts of
data for cancer markers or biologically active molecules, are divided
up into manageable pieces and automatically sent out to the clients
participating in the project. Results, once processed, are
automatically sent back to the server for aggregation. To give one an
idea of how much processor time is available, the World Community Grid
tracks a statistic called Run Time Per Calendar Day. This is
equivalent to the number of days of running a single computer,
achieved in 24 hours of real time. One project is averaging an incredible 63 years
worth of computer time contributed to the project – every 24 hours!
Today’s Tablet – How it Stacks Up
Simultaneously, since 1997, the mobile phone has evolved from a
straightforward voice communication device, to a powerful handheld
computer in its own right. Mobile CPUs have grown from primitive
integrated circuits to full blown multi-core CPUs, such as the NVidia
Tegra 3-30L found in the Google Nexus 7 (2012) Android tablet. In
2012, BOINC also started including support for Android-based mobile
clients, in addition to its traditional usage of desktop and laptop
CPUs, as mobile clients finally gained enough processor power, storage
and RAM to tackle compute-intensive tasks.
While cross-platform comparisons are often difficult, due to a myriad
of factors such as different architectures, programming languages,
operating systems and so on, MIPS (Millions of Instructions Per
Second) serves as a very rough benchmark to provide a relative
comparison between platforms and generations.
NVidia Tegra 3-30L CPU in a Nexus 7 2012 tablet, 5W power consumption
Approximately 10500 MIPS
MacBook Air 2013
Intel core i5-4250U, 15W power consumption (CPU alone)
Desktop with quad-core Intel i5-4770K, 84W power consumption
A rough estimate is that a Nexus 7 (2012 edition) Android tablet would
provide nearly a quarter of the CPU power available to a contemporary
MacBook Air (2013) user. For a portable, handheld device consuming a
mere 5 watts, capable of running all day on a much smaller battery,
this is quite an achievement. While still remarkably power efficient
(indeed it achieves higher MIPS per watt), the Macbook needs to
consume at least 3 times the power to deliver the amount of computing
power it does.
Comparisons with a desktop CPU make the Android appear even more
efficient. While the Intel i5-4770K quad-core CPU is nearly 11 times
more powerful, it also consumes 17 times more power in order to
provide this performance, and certainly is not designed for
Consider this, in 1999 an Intel Pentium III (600Mhz) produced
approximately 2K MIPS. Even at that time, it was suitable, indeed
highly regarded for early distributed computing efforts.
No Free Lunch
Of course, there’s no such thing as a free lunch. Running
CPU-intensive applications generates heat and drains power, which is a
concern especially for portable users. To this end, the BOINC client
has been intelilgently engineered to start running only when the
Android device is charged >90%, and only communicates with its servers
on WiFi. While this seems to limit the use of the client, a tradeoff
is made between inconveniencing the volunteer user donating their CPU
time, and the time available for processing.
As it is, this combination of events happens when you leave your
tablet or phone overnight to recharge. Simply install the BOINC client
from the Google Play store, select a project you’d like to participate
in, adjust the parameters (if necessary) and leave your mobile device
overnight to charge. Once fully charged, it will start processing, and
stop when you take it off the charger the next day.
Unfortunately, no client for IOS devices is available today, but
hopefully there may be some day in the future.
Saving the world while you sleep? Yup, it’s possible. Every computer
counts. Try it today.
If you would like to read more, please see the BOINC Android FAQ.
The client can also be downloaded from the Google Play store here:
News Article by Kevin Lam