Folding@Home (F@H) is a distributed computing project by Stanford University for simulating protein folding and other molecular dynamics with the goal of understanding protein folding, misfolding, and related diseases. By running the Folding@Home client on your computer, you are contributing to research relating to diseases such as Alzheimer's, ALS, Huntington's, Parkinson's disease, and many Cancers. For more information see http://folding.stanford.edu/
This guide covers installation and management of the F@H client for Team Ubuntu (team #45104). This not only helps with the research described above, but also promotes Ubuntu.
By default, the client should not interfere with normal operation of your computer. It will use only spare CPU cycles, and will effectively be suspended while CPU intensive activities are being done by a user. If your CPU frequency governor is properly configured (as explained below) the client won't even scale up your CPU frequency, and therefore will have minimal effect on laptop battery life and power consumption.
Installing the Client with Origami
The easiest way to start folding is with Origami. Origami is a program for installing and manipulating F@H clients on any number of computers. It can install the client to the local machine or to remote machines with root SSH access.
First, you need to install Origami itself. Open a terminal and run
sudo aptitude install origami
Then, you can install to the local machine with
sudo origami install -t 45104 -u username
"username" can be any username that isn't already in use. You can use the same username on multiple machines to get credit to the same username. The -t 45104 credits the work as part of team 45104 (Team Ubuntu). Once installed, you will have a startup script that can be manipulated just like any other service and will auto-start at boot. You can also use sudo origami start to start the folding client or sudo origami stop to stop it.
Installing the Client Manually
It is also possible to install the client without Origami. Although this will mean that you do not have a boot script or mechanism of control unless you create one yourself.
For a manual installation, Go to Stanford's site and download the appropriate client. Anyone with a personal computer running Windows 9x, NT, XP, Mac OSX, and Linux will find clients there. BSD users generally run the Linux client. This guide focuses on the Linux text console client. There are several different clients available; Text Console, GUI, and Screensaver. This guide will focus on the Linux client.
As far as speed is concerned Text Console is the fastest, GUI is second fastest and Screensaver is slowest.
If you're going for performance DO NOT run the screensaver version. It wastes approximately 15% of the CPU's power just drawing pretty protein images. The GUI version has been known to interfere with some games so. The console version is recommended.
Setup and Run the Client
Optionally, you can create a new folder such as .fah to store all client data and configuration and keep your home directory slightly less cluttered; to do so, run mkdir .fah; cd .fah
- Download the file and extract it to the folder you want F@H to store its data in.
- Bring up a terminal to that directory
For each of the following, do what is listed in italics, then press the [Enter] key on your keyboard:
User name [Anonymous]? Type in an unused user name. Use this same user name on all of your machines that you install the client on.
Team Number ? Type in the number 45104
Passkey ? Leave this answer blank.
Ask before fetching/sending work (no/yes) [no]? Decide on how you want it configured. My recommendation is to just leave it blank. (It will default to "no".)
Use proxy (yes/no) [no]? Unless you are behind a proxy, the default answer ("no") is correct.
Acceptable size of work assignment and work result packets (bigger units may have large memory demands) -- 'small' is <5MB, 'normal' is <10MB, and 'big' is >10MB (small/normal/big) [normal]? Usually, it is best to leave this alone. If you know what you're doing, however, feel free to change it to suit your needs.
Change advanced options (yes/no) [no]? The default is fine here, as well.
The client should begin to run. In the future, when you run steps 3 and 4, it will simply start the client. (It saves the configuration information from the first time.)
If necessary, you can stop the client by holding down the [Ctrl] key and tapping the [C] key from the same terminal that you started it from. Alternately, you can run killall fah6. If you want to, you can set the client to run at startup. This should be possible by adding an entry for it under the Startup Programs tab of the Sessions options box. To access this box, go to "System", "Preferences", and then "Sessions".
Here is a list of different options you can pass to the client. You can run also see this list by running ./fah6 -help from the directory where F@H is installed.
- -config Configure user information
- -configonly Configure user information, then exit
- -help Display this usage screen
- -queueinfo Get information on queued work units
- -delete x Delete item #x from work queue
- -send x Send result #x to server then exit. Use x=all to send all results
- -verbosity x Sets the output level, from 1 to 9 (max). The default is 3
-pause Pause after finishing & trying to send current unit
- -oneunit Exit after completing one unit
- -forceasm Force core assembly optimizations to be used if available
- -advmethods Use new advanced scientific cores and/or work units if available
- -freeBSD Make brandelf system call on downloaded cores.
- -openBSD Make elf2olf system call on downloaded cores.
- -smp x Use symmetric multiprocessing with n cores.
CPU Frequency Scaling Issues
By default, the ondemand CPU frequency governor will scale up your CPU frequency for the F@H client. This results in increased power consumption, decreased laptop battery life, and increased CPU temperature on computers that support CPU frequency scaling. In cases where the computer is not properly cooled, this can result in overheating and possible hardware or software damage. To rectify this issue, open a terminal and run
echo 1 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/ondemand/ignore_nice_load
This will make the F@H client's effect on power consumption, batter life, and CPU temperature minimal until you shut down or reboot. To make this change permanent, add the line
echo 1 | tee /sys/devices/system/cpu/cpu*/cpufreq/ondemand/ignore_nice_load > /dev/null
to /etc/rc.local before the "exit 0" line
However, doing this this will decrease the amount of work that the client can do. If you want to scale the processor up again, run
echo 0 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/ondemand/ignore_nice_load
and remove the line you added to /etc/rc.local.
If you have multiple frequency steps, you can also set your minimum CPU frequency to get a middle ground between these two options. For example, if the command
outputs "2200000 1100000 550000", that means you can run your CPU at 2.2 GHz, 1.1 GHz, or 0.55 GHz. If you run
echo 1100000 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq
then your minimum CPU frequency will become 1.1 GHz, and if you use the command above starting with "echo 1", then the F@H client will be allowed to do about twice as much work while the computer is idle because the CPU will be running twice as fast. If you want to make this change permanent, you can add the line
echo 1100000 | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq > /dev/null
to /etc/rc.local before the "exit 0" line
Getting More Credit
There are many ways you can do more work and get more credit for folding. This benefits your ego, Team Ubuntu, the Folding@Home project, and everyone who benefits from this research.
It is recommended that you disable any screensavers, as they rob you of valuable idle processing cycles. Setting your computer to "blank screen" a good alternative.
Leave your machine 24/7 if you can take it. Computers that are off do not compute anything.
Overclocking is one way to get more points when folding.
In general, overclocking by X% will give you slightly less than an X% increase in the work that F@H does with CPU. (slightly less because of RAM latency) This will not effect the speed at which F@H operates on GPU's unless you also overclock your GPU.
Overclocking falls under the "voided warranty" category of things you can do to a computer. Bear in mind that your processor was tested at the factory and set to a "safe" frequency based on its performance that prevents hardware errors. Overclocking also cause greater power consumption and generates more heat, so you should only do this if your power and cooling hardware can handle it.
The specifics vary depending on your motherboard and processor, and instructions to do so are beyond the scope of this guide.
Named after the Star Trek race of assimilation, "borging" refers to installing F@H, or any DC (Distributed Computing) program, on someone's computer, usually without their knowledge. It is explicitly forbidden by the F@H EULA, but folks do it anyway. Be careful if you choose to do this; people have gotten fired over borging. There is a program being written by a Hack-A-Day team member that examines a computer's hardware setup and decides, based on how much RAM, CPU speed, number of CPUs, etc. which way to install F@H for the best, lease invasive, performance.
You can recruit others to fold under your username if you are persuasive, which is a better (i.e. legal) alternative to Borging. They may or may not use your username, but they will still be benefiting the project, and will be likely to install the F@H client on more machines.
Thank you for joining Team Ubuntu to promote Ubuntu while contributing to a good cause.
For more information on Team Ubuntu and Folding@Home, and for some artwork to help promote Team Ubuntu, look at FoldingAtHomeTeamUbuntu