Companies like Google are well known for their approach to computing power: using lots of little computers to do the job of a supercomputer. It’s cheap, fault-tolerant, and if done right, almost infinitely expandable. Well if that works with computers networked directly to each other, why not over the Internet?
BOINC (or the Berkeley Open Infrastructure for Network Computing) is a software system designed to coordinate CPU sharing over the Internet. There are BOINC client programs that allow you to donate your unused processor power to a variety of purposes, largely non-profit projects and organisations.
It’s important to note exactly what I mean by unused processor power. Believe it or not, most of the CPU power in your average home computer is wasted. When you browse a web page for example, your computer’s processor has to do the work of loading and displaying the page, but once that’s done the processor just sits there idling until the next page needs to be loaded. While it may feel like you’re always waiting on your computer, the computer is also frequently waiting on you.
During your pauses in activity, the CPU is essentially just doing nothing, waiting for its next set of instructions. You can take advantage of those pauses by telling your computer to run a certain job when it’s idle, but to put that job aside whenever you’ve got some real work to do. That’s where BOINC comes in. When you install the BOINC client software, you choose how you want to use those extra processor cycles. The most well known BOINC project is SETI@home. There are several other available projects you may find worthy of your processor time, some of them are:
- Hydrogen@Home – To enhance clean energy technology by improving hydrogen production and storage.
- LHC@Home – Compute data from the Large Hadron Collider
- Cels@Home – Crunch data for cell adhesion/cancer research
- Artificial Intelligence System – reverse engineering the brain in order to build a large scale artificial intelligence system.
and many more, which can all be found here.
In this article, I’ll focus on installing BOINC client software in Ubuntu Linux, however there are BOINC clients available for Linux, OSX, and Windows (98/ME/2000/XP/Vista).
Installing BOINC Client Software
We’re going to start by installing the necessary software to make this computer part of the BOINC cluster. In Debian/Ubuntu you can use apt-get/aptitude/Synaptic to install:
Installers for other operating systems can be found at the BOINC website.
Once everything is installed, you can launch the manager program with
You’ll get a window looking something like this:
After clicking Next, you’ll be asked which of the projects will be benefiting from your extra CPU cycles.
Pick whichever project you like, but I might as well throw out the warning that all my recent attempts to pick LHC have resulted in network errors, so as of the time of this writing the LHC BOINC project does not appear to be functioning.
Assuming you’re a new user to the BOINC program, you’ll want to enter an email address and password at the next screen. Once that’s complete, you will likely be redirected to the homepage of whichever project you chose. The site might ask you a few more questions such as where you’re from. Using the project website is typically optional, it’s there to give you a way to see your stats – the amount of processing you’ve put toward your project of choice. You can also typically use the project’s website to join teams, where several people pool their usage stats together and compete with other teams.
Once you’ve created/entered your BOINC login information, the BOINC client software should begin downloading and processing data.
Once you’ve hit this point, you should be all set. You can sit back and enjoy the fact that you’re contributing toward a worthy goal, and all it cost you was a few minutes of setup time, and some unused CPU cycles. Who knows, it may be your home PC that will be the first one to find alien life, or a cure for cancer, or model the Big Bang.
Our latest tutorials delivered straight to your inbox