The idea of volunteer computing is quite a straightforward one in principle. Users who volunteer to take part download a client application that runs in the background on their machine. The machine then utilises its unused CPU and GPU cycles to run scientific computing applications, often to analyse data, perform calculations or make contributions towards simulations.
The client detects how much of your system is currently in use for the tasks you are performing yourself, and then allocates spare resources accordingly; the idea is that you can participate in the research without it affecting your computer's performance.
If you have a powerful graphics card but are currently only working in a word processor, for example, the GPU will not be heavily utilised and can donate power to BOINC. Fire up a game and the GPU requirement will go up, so the BOINC overhead will decrease accordingly.
One of the biggest advances seems to have been the introduction of GPU support following work with Nvidia's CUDA chip, with support for other manufacturers coming on board shortly afterwards. "GPUs are currently 10 to 50 times faster than CPUs, and this gap is widening," continues Anderson.
"GPUs account for the majority of processing power in volunteer computing. In a few years, CPUs may be lost in the noise as far as scientific computing is concerned. We've been working on GPU support in BOINC for a couple of years now, and it's working well – lots of BOINC projects have GPU apps. The next big step for BOINC involves running applications in virtual machines. This will greatly reduce problems of heterogeneity (having to compile apps for lots of different platforms) and of security (a VM is a strong sandbox, preventing buggy or malicious apps from doing any damage)."
In the interest of inclusivity and ensuring that there are no barriers to anyone wanting to contribute, BOINC is available for most operating systems, from Microsoft Windows and Mac OS X to more specialist OSes, including various flavours of Unix/Linux and even FreeBSD.
This doesn't come without its difficulties though, and there are technical constraints and difficulties with the system, as Dr Anderson explains: "We have thousands of [problems], ranging from general (such as how to support GPUs) to specific (how to deal with changes in the latest version of Mac OS X, for example). We eventually solve all the problems – I have a couple of very talented programmers working for me!"
It also seems apparent that the weight of numbers and expectations are big concerns for the team behind BOINC. It relies on volunteers for pretty much everything, including programming, testing, support (via Skype and web forums), translation, documentation and development of third-party components and applications.
It's abundantly clear that Dr Anderson and the team are always looking for help, and if you believe you have something to offer, you can do more than just volunteering your processing time to get involved. Check out the Help Wanted section on the BOINC homepage to see what you can do.
Saving the world
Applications for volunteer computing via BOINC are many and varied, covering several areas of science. They include the mathematical (NFS@Home – studying factorisation of massive integers), biological (Rosetta@home – attempting to discover new proteins for disease), medical (malariacontrol.net – simulating the transmission dynamics of malaria) or physical (LHC@home – yes, even the Large Hadron Collider at CERN, Switzerland has some BOINC-based activity that requires participation).
Something everyone can relate to, though, is the work of the University of Oxford and the Climateprediction.net project. Climateprediction.net uses the participation of users all over the world via BOINC to create climate-predicting models on their machines.
As each user's 'world' ages and changes in different ways (think Sliding Doors – everybody's model will go a different way, even if only slightly), the volunteer can view their own climate model through the application, with details on anything from surface temperature to rainfall and cloud predictions in their own little ecosystem.
At the time of writing, the Climateprediction.net site showed that it currently has over 54,000 hosts, and has achieved almost 54 million model years of data since the move to BOINC in 2004.
This success can to a certain degree be attributed to some good press: the project was featured in the BBC's Climate Chaos season in 2006, and viewers were invited to "predict the UK's future climate" in a mass experiment. Hollywood blockbuster The Day After Tomorrow certainly didn't hurt its cause either.
Climateprediction.net is an increasingly important project and one that is an obvious success. It's worth noting that while using BOINC, volunteers can choose to share their resources among multiple experiments. But Dr Anderson is quick to point out that the organisation still has work to do:
"BOINC hasn't succeeded – at least not yet. The utopian ideal has not been realised. Only a few dozen scientists – not thousands – are using volunteer computing and the rate of project creation is low. We're trying to figure this out. One thing that's clear is the need for umbrella projects that serve multiple scientists and that are operated at a high organisational level. For example, instead of Climateprediction.net there might be Oxford@home, serving many scientists at Oxford and operated and publicised by the university, or maybe a project that serves multiple climate researchers from different institutions."
The options for expanding the uptake and therefore the success of the project are huge, given the right focus and direction. It particularly brings the point home when we talk in terms of numbers. Dr Anderson estimates that "the larger BOINC projects have [around] 50,000 active computers. The cost of the projects is a couple of server machines and a couple of people to administer the project – say $300,000 a year. Buying the equivalent computing power – either by building a cluster or by renting time on the Amazon Elastic Computing Cloud – would cost on the order of $50million a year. No BOINC-based project has this kind of money!"
If we want these projects to succeed, then the only way is to volunteer resources. Every PC that connects to BOINC, regardless of project, is a step in the right direction, and the more we contribute the closer results become.
In coming years when scientists cure the incurable, solve the impossible or save the world from climate change, wouldn't it be fantastic for millions of ordinary people to be able to raise their hand and say 'I did that!'?
With BOINC and volunteer computing helping and changing the scientific community, that's a very real possibility.