Earlier this year I decided to embark on an experiment to see how I could use my extra computing power for the betterment of mankind and science. Ok, perhaps that sounds a bit idealistic, so let’s instead just say “for science”. :)
To that end, I’ve been running folding@home clients on most of my machines, including my work laptop. Unlike seti@home, which is searching for extraterrestrial signals and so far has come up empty-handed, folding@home is exploring protein folding and the results of this distributed computing farm have produced over 100 scientific papers.
I also have selfish reasons for wanting to contribute computing power to folding@home — I have (and have lost) loved ones which suffer from diseases which benefit are being actively researched on folding@home. However, as is true with much scientific research, the benefits are not usually seen right away so it’s all about playing the long game.
At any rate, I wanted to find a way to contribute to folding@home from my available computational power. There are two types of folding workers that can be configured in the client:
- CPU workers, which can use -1 to N slots, where -1 is “automatically determined by the system” and N is the maximum number of cores in your CPU(s).
- GPU workers, which do have some priority settings but in my experience is more of an all-or-nothing affair.
Configuring workers to match the usage and computational power of your machine is the key to finding that “sweet spot” between “awesome for science” and “still usable” on your machine. In my opinion, the default settings swing a bit too much to the former, so here’s how I’m running folding@home on my machines now:
- I run Linux on my office laptop, which is a 2+ year old Thinkpad that has a 4-core CPU and a mediocre NVidia graphics card. However, I also have a giant monitor attached to the laptop, so running GPU workers made the machine basically unusable. So I’ve set up 1 CPU worker set to -1 slots. During normal work, this ends up using 2 cores (50% of available CPU power) and doesn’t usually get in my way. If I need extra computing power, like during a big source rebuild, I pause the folding client. I’ve also set up integration between folding and xscreensaver, so when the screensaver is active then folding scales to use all 4 cores.
- My music computer is a Mac Mini which has a relatively beefy 4-core CPU (total of 8 cores with hyperthreading) and a crappy built-in graphics card. Again, GPU folding is out of the question, as is giving -1 slots to folding, as I need the CPU power for realtime audio. So I created 2 folding workers, one has 2 slots and the other has 6. If I’m doing regular work on that machine and can spare the CPU power, I pause the 2-slot worker and start the 6-slot worker, but if I need extra power for audio work, I do the opposite. During gigs I pause both workers. If I have to leave the machine running overnight (ie, to do a big backup or copy files), I leave both workers running.
- My Windows box is used for home programming and gaming. It has a mediocre 2-core CPU and a beefy NVidia graphics card. GPU folding works very well on this machine, however it also generates a ton of heat so I only do it if I’m coding on the machine and not gaming, and also I’m too paranoid to let GPU folding run overnight. Otherwise, I have a single 1-slot worker which sits in the background and chugs away.
After doing this for some months, I have reached the rank of 232869 out of 1735294. Considering that I’ve only been actively folding for less than a year, 232869 seems pretty low, however that does place me in the 13th percentile of all folders. Not bad!