It is a very arguable point that digital computers are singlehandedly the best invention by mankind. While it has been a slow process reaching their current state, their evolution in speed and capability in such a short timeframe in the overall human story is a nonetheless incredible feat of human ingenuity. Granted, computers themselves wouldn’t have been possible without some pretty crafty inventions in their own right; however, the breadth and scope of how computers impact our daily lives is something that remains (again, arguably) unparalleled.
Everything you interact with on a daily basis probably has a computer in it to some extent. Take a few minutes and think about it: The alarm clock that wakes you up, the refrigerator that keeps your eggs cold, your car’s engine, that coffee machine in your office that dispenses coffee, the supermarket checkout device, and most certainly the TV, DVD/Blu-Ray player, and surround sound system in your entertainment center. The list definitely goes on.
During their humble beginnings around the 1940′s, central processing units (CPUs) could only perform a couple hundred calculations per second (which is still more than I can do) and took up the floorspace of an entire university basement; today you can get more than that in your cellphone. In fact, today’s mobile devices and computers are capable of executing billions of calculation instructions per second. But does that make them supercomputers? Well, no. But…
The Macbook I’m using right now to write this article contains an Intel Core 2 Duo clocked at 2.5GHz, and achieves on average about 3.22 GFLOPS of computational power. GFLOPS is short for GigaFLOPS, which is stands for “Billion Floating Point Operations Per Second”. Essentially, it can compute roughly 3,220,000,000 Floating Point calculations in the time it takes you to say “three point two two”. For reference, the famous super computer CRAY-1, ran at around 80 MFLOPS (“Million Floating Point Operations Per Second”). For those playing at home, my laptop today is 40.25 times faster than that supercomputer. But it’s still not a supercomputer.
So then what is a supercomputer? According to Wikipedia, a supercomputer is “a computer that is at the frontline of current processing capacity, particularly speed of calculation.” So my laptop running at 3.22 GigaFLOPS? Compare that with the fastest supercomputer at the time of this writing, the Tianhe-1 in China. It runs at 2.566 PetaFLOPS, or 796,894 times faster than my laptop! (That’s over 3 million times faster than the CRAY-1). Just… wow. So what are they doing with all of this computing power?
Usually when we think of supercomputers, we probably think about large, noisy computers with arrays of blinking lights somewhere in a distant lab. Something like WOPR from War Games, I’ll bet. That’s not far off, as the supercomputers of today are still very big devices. In the case of the fictional WOPR, it played “war games” between the USA and USSR during the Cold War, as a military simulation. This is still done today on some computers. Others are crunching data collected sent back from space. Others still are working on human-computer interaction, and some on curing diseases.
All are important tasks, but these machines aren’t cheap to build and, as such, are pretty exclusive. So what if you’re a scientist that needs access to supercomputing resources, but don’t have the luxury of it? Enter: distributed computing.
Earlier I mentioned that today’s commodity machines run a rather fast rate of speed. In fact, this is much faster than most people need them to be, and, if they do need them to be that fast, they probably don’t need them to be that fast all of the time. So you take several of these machines and network them together, split up your total workload and assign one of them as the master controller, and you’re off to the races. Divide and conquer. It’s a simple concept, and one that many labs and universities have used to their advantage, using off-the-shelf components to construct miniature supercomputers at a fraction of the supercomputer cost, using only specialized software. Cool, huh?
Now let’s abstract that idea a little bit. All of those computers that were mentioned as being networked together are usually in the same room. What if they weren’t in the same room? What if they weren’t even in the same building? Or city? Or continent? Now you’re into volunteer grid computing, with the Internet as the networking fabric. Enter: BOINC.
BOINC stands for Berkeley Open Infrastructure for Network Computing, and is maintained by (you guessed it) UC Berkely. It’s a general-use software that allows projects (scientific or otherwise) to tap into the available spare computing resources on billions of computers running the BOINC client worldwide, if the owners of those computers volunteer to donate it. Most of the time a home user’s computer sits idle, and while it may be capable of 3.22 billion calculations in a second it’ll just sit there doing nothing if it you’re not instructing it to do something, wasting away those opportunities for calculations. BOINC uses a set-able portion of these opportunities to calculate small work units of data for projects that users sign up for. Upon completion, they’re submitted back to the projects for “credit”, a kind of score. By doing this, labs and scientists are able to essentially have access to a supercomputer. As of 2009, the SETI@Home project was able obtain the equivalent of 769 TeraFLOPS. “For comparison, the Cray Jaguar, which as of 26 September 2009 was the world’s fastest supercomputer, achieved 1,759 teraFLOPS.” Pretty darned close, and I would surmise it cost them considerably less.
A wide range of projects is available to volunteer for. Here’s a few I participate in:
SETI@Home: SETI@home is a scientific experiment that uses Internet-connected computers in the Search for Extraterrestrial Intelligence (SETI). You can participate by running a free program that downloads and analyzes radio telescope data.
Enigma@Home: Enigma@Home is a wrapper between BOINC and Stefan Krah’s M4 Project. ‘The M4 Project is an effort to break 3 original Enigma messages with the help of distributed computing. The signals were intercepted in the North Atlantic in 1942 and are believed to be unbroken.’
Rosetta@Home: Rosetta@Home needs your help to determine the 3-dimensional shapes of proteins in research that may ultimately lead to finding cures for some major human diseases. By running the Rosetta program on your computer while you don’t need it you will help us speed up and extend our research in ways we couldn’t possibly attempt without your help. You will also be helping our efforts at designing new proteins to fight diseases such as HIV, Malaria, Cancer, and Alzheimer’s.
MalariaControl.Net: The malariacontrol.net project is an application that makes use of network computing for stochastic modelling of the clinical epidemiology and natural history of Plasmodium falciparum malaria.
There’s over 40 others that can be selected, it’s up to the personal preferences of the volunteer. Several of these projects have already had measurable success (Enigma@Home was able to crack one of the codes in less than 24 hours) from their distributing computing efforts, and some have reported that, thanks to the distributed computing, they’ve been able to compute rather quickly what would have taken them years to do alone.
So if your computer is just sitting there being idle, why not put it to good use helping to solve some of the problems that plague us today? Just about any computer can run it, from your laptop to your desktops. Heck, even the webserver that delivered this page to you is helping to fight diseases. (Click the badge below for a breakdown of the server.)