Distributed computing, a power hungry charity

Even though this is a blog about AI, I’m not above spreading the good word from time to time. As an addition, I thought this might be a nice follow-up to my post about latency vs. throughput. Today I want to talk about a form of charity that’s not very well known, distributed computing.

One step further

In the aforementioned post, I talked about the advantages of parallel computing. Basically, the idea is that if you have a task which consists of lots of smaller tasks that can be run independently from each other, it makes sense to have lots of weaker workers work on them simultaneously, instead of one or two very efficient workers. Now, we can take that idea one step further, into distributed computing. The idea here is more or less the same but on a bigger scale. You still have the same sort of task which can easily be split up into parallel processes. This time, however, instead of computing it all locally, you send the jobs away over a network. Then when the machine on the other end is finished calculating it sends the results back.

Why do it like this?

Just as with parallel computing, this idea is about scale. When you increase the potency or scale of a CPU or PC, you get a diminishing return pretty quickly. For example, when you increase the power of a PC it is increasingly hard to keep it cool. Just as with parallel computing, we solve this by having lots of distinct devices to work on simultaneously instead of a few powerful one. Only this time they’re just linked via a network. All the devices on the networks might be a lot less powerful but they can still contribute to small parts of the problem. If you combine all of these devices, they can pack a surprisingly powerful punch. (f@h, which I’ll talk about in a minute, claims to reach over 105,000 teraFLOPS. That is over 10^{17} or a billion billion floating-point operations per second. Just mind-boggling.)

Of course, this only makes sense if your problems are suited for them. First of all your problem has to be suited to parallelization at all. You also have to factor the time it takes to send the problems everywhere. Sometimes the data gets corrupted when they’re sent back so you have to ask for them to be sent again. Sometimes the person that was doing the calculation for you is using the computer themselves or turns it off, so you’ll have to wait longer for the results. In short, I wouldn’t recommend it for consumer stuff. Scientific computing, on the other hand, is a whole different cup of tea.

You mentioned something about a charity?

Yes, yes I did. You see, some people have streamlined this process so you can join in! When you aren’t using your computer, and a lot of the time when you are, you’re using only a tiny amount of what the computer can do. The charities that I’m going to mention made programmes so that they can send jobs to your computer and use the recourses that you aren’t. You can donate your computing power to help solve the world’s problems. There are two charities in this category that I now of:

  • Folding@Home. This charity is set up by the university of Stanford. They are simulating how proteins fold in different ways to help research things like Alzheimer and Parkinson’s disease. There is a short introduction film on the website I linked to, which explains things way better than I could, so check that out if you’re interested.
  • BOINC. This one is set up by the university of Berkeley. It has the same general idea but is way more versatile. This network allows people to submit their own projects. These projects can range from disease research to simulating galaxies.

The good

I love these projects because I just get a lot of satisfaction out of the knowledge that my computer is working tirelessly to cure Alzheimer while I’m doing the shopping. The programmes are very easy to use and install, and are very non-invasive. They’ll just sit in the back of your computer and run in the background when they can. They are configured to have a very low priority when running, which means that they’ll only run when you aren’t using the recourses yourself, so your computer won’t actually run any slower. With both, you can choose which kind of research your computing power goes towards, though BOINC has a much larger variety. You can also set how much of your spare recourses you want to donate. There are three settings of intensity which will use 50%, 75% and 100% of your spare recourses respectively, so you can set the rate you are comfortable with.

Both projects also have Android apps so your smartphone can also join the fun. These apps are designed to only work when you are plugged into a charger, and only transmit data over WiFi so they won’t drain your battery or data, which is great. A lot of work has gone into making everything as easy and non-invasive for you as possible, which I just love. I think these people understand that you need to make the experience as painless as possible if you want people to contribute.

The bad

I want to be honest with you, so here I’ll list some of the things that aren’t so great about donating your computing time. Make no mistake, this will cost you money. Increasing the workload on your computer is going to bump up the power consumption significantly. How much depends on your computer, what kind of hardware you have, how often you donate, what settings you use etc. This also makes it hard to keep track of how much you’re are donating.

Aside from that, most computers aren’t built to constantly be under a heavy workload. Most just aren’t equipped with the equipment they need to stay cool under that sustained load. Now I’m not saying that this will immediately damage your computer, almost all components and operating systems have safety features installed to deal with this. I must admit however, that I don’t know the long-term effects on your hardware. Heat is bad for hardware. Not only that but everything sustains wear and tear with increased use. So running these 24/7 might decrease the lifespan of your computer.

Finally, there is the sound. If your computer is going to be working constantly that means that its fans are also going to be constantly working. This might not be a problem for you depending on where you placed your computer. If, however, like me, you live in a one room studio, the noise can be quite irritating.

The not-so-very ugly

So there you have it. I think these charities are really worthwhile. Though you should consider the points I’ve mentioned and make your own decision, I think it’s a worthy cause. The problems I’ve mentioned are mainly about what kind of recourses you have to work with. How robust is your computer? How good is it at dealing with heat? Do you mind a bit more noise around your house? Can you afford a (small) bump in your power bill? Personally, I try and keep one running from time to time on a low setting. Maybe in the future, if I have more space or more cooling in my PC to work with I might try to donate more. For now though, I try and remember the old proverb, every little bit helps.

I hope I have given you an honest overview of how these charities work and the upsides and downsides to them. I’d like to hear what you think about this. Have I changed your mind? Is there something I forgot? Do you have another form of charity people don’t know but should definitely consider?

Like, Share, subscribe:
RSS
Facebook
LinkedIn
Google+
http://modernwizardry.xyz/distributed-computing/