http://folding.stanford.edu/

Overview

Folding@Home is a project from Stanford University that uses thousands of networked PCs to form a virtual 'supercomputer' for protein folding simulations. The client software is loaded on a PC, it contacts the central servers, and receives "work units". The client then runs on spare CPU time, and uploads finished work units to the server.

When proteins are created, they undergo a complex process known as folding, so-called because the protein molecule transforms from a long chain of amino acids to a complex shape (it "folds up"). The final shape of the protein is absolutely critical to determining its properties and function. Scientists have created software to simulate the folding process to better understand how proteins work. This in turn makes it possible to develop new drugs, attain a better understanding of how certain diseases work, and even lead to cures for these diseases!

Folding@Home is a great way to make your computer do useful work even when you're not using it. Since it runs at a very low priority, you should never realize it's running when you're using the computer to do your work. Note that "using the computer" refers to doing heavy computations. Generally, tasks like web browsing and word processing involve very little CPU usage, so the Folding@Home client will be running at near 100% even when doing those kinds of tasks. It helps to leave your computer on at all times, but is not necessary, as the project will benefit from virtually any time that the client runs on your computer.

Installation Methods

Before using any installation method, you may want to pick a username and a team. Neither is necessary, but having a unique username lets you know how much you are folding, and folding for a team adds to the fun. Because you're a fan of Ubuntu, you probably want to fold for Team Ubuntu -- the team number is 45104. You can pick any username you want, but if you pick one that's already being used, that will make it impossible to track your score and will inflate someone else's score, which may or may not be welcome. Search for an unused name HERE.

There are several ways to install the Folding@Home client. You can just run it manually, or you can use a number of scripts that will do certain things automatically. Each method has its own page to reduce clutter:

  • Manual installation

    • Manual installation is simple, but the installer scripts solve the many problems with this method. But there are also options for those wanting fine control of the process, and some are especially useful when engaging multiple cores of a multiple core client processing one work unit in concert using the -smp flag.
  • finstall

    • finstall is the semi-official installer for Unix.
  • fah_install

    • fah_install is a script maintained by jpkotta. It's a great script that makes the entire installation process much easier.

  • origami

    • Origami is a frontend for finstall created by Christer Edwards. Installation is very simple, and works quite well for installing over a network. It supports cron based scheduling, proxy support, and i386 or amd64 clients. It is available as a .tgz.gz package, in .deb form via Launchpad PPA, and is included in the Ubuntu repositories (8.10 or later).

Help & Support

Mailing List

Since there is no particular place to post folding related questions on the forums, the mailing list makes a great place to ask your questions to a group of fellow Ubuntu folders. You can subscribe to this list by joining the Ubuntu Folding Team's LaunchPad group and choosing to subscribe to the team's mailing list.

IRC

For support concerning installation, configuration and other use of the below installation methods join us on IRC at ##folding on freenode.

Forums

To find more info about Folding@Home, and the team, please visit the Team Ubuntu Recruiting Notice. You can find many other threads based on F@H on the forums, so be sure to do a quick search for them.

TeamUbuntu

A competitive Folding@Home team named Team Ubuntu exists to represent the Ubuntu community and to have some fun while doing good. The team number is 45104. To join the team, simply enter 45104 when the setup dialog requests a team number. For more information on the team, please visit TeamUbuntu's wiki page.

FAQ

General

Will running F@H impact my computer's performance?
In a short answer - no. The Folding@Home client uses a very low priority to make sure all other programs, apps, etc. receive all the CPU power they need. The client will only use whatever processing power is left over to fold with. With this method, your CPU will always be kept at full-load, but your system should not suffer for it.

Is Folding@Home safe to run?
Folding@Home is secure. The Stanford team has gone to great lengths to ensure security, both for the integrity of their research and the safety of donors' computers. However, the more secure the better. The Gentoo ebuild for Folding@Home creates a new user foldingathome whose sole purpose is to run the client. Now, fah_install and origami offer the same. They create a user whose account is disabled, and runs the client as this user when the init script is run as root, so the client is never run as root.

How can I monitor my folding progress?
For specific commands to monitor your current progress, please refer to the wiki page for the method you used to install your client.

There are also nice graphical programs that will display your current progress:

You can also lookup how many points your current work unit is worth by looking up your protein HERE

For your overall production or for more stats on Team Ubuntu, please check out Stanford's Official Stats Page.

I have a Hyper-Threading CPU...
For those with Hyper Threading CPUs, you probably know that an SMP kernel sees two processors. Then clearly, if you run two clients, you will get more work done than if you only run one (probably about 10-30% more). However, results that are done quickly are more useful than more results done slowly. The reason is that each work unit is a step in a giant simulation, with future steps depending on past ones. So the faster you get your work done, the faster the simulation can move along. Long story short, run one client for each physical CPU, not for each logical CPU. The installer should automatically count the number of CPUs in your system. See this post in the Folding@Home forums.

Does F@H write files to random directories?
If you use origami, fah_install, or finstall, it shouldn't. That was half of the reason why these scripts were written. The client writes a bunch of files to some directory, we'll call it the working directory or WD, if the WD doesn't have all of the files already. So if you have no F@H files in the WD, the client will write them. How do you figure out what the WD is? It is the current directory of the shell that starts the client; in other words, it could be anything. If you have a script of some sort that you wrote to start up the client, you need to cd to whatever directory you want all of those files to be written to before starting the client.

cd /working/directory
/path/to/FAH502-Linux.exe

Networking

Will the F@H client use up all my bandwidth?
No. The Folding@Home client uses very little bandwidth. The only time your client will use (or even require) a network connection is when it finishes a work unit. It will then send that work unit back to the Stanford servers, and download another work unit. The entire time your computer is processing a work unit your computer doesn't even have to be connected to the internet - it just has to be connected again to send/receive work units when it completes the current one.

Can I run F@H on a computer that isn't networked?
Yes, for more information about this please refer to the page about Sneakernet.

I don't seem to be making any progress.
If the log looks something like this:

[19:39:55] + Attempting to get work packet
[19:39:55] - Connecting to assignment server
[19:39:57] - Successful: assigned to (171.64.122.133).
[19:39:57] + News From Folding@Home: Welcome to Folding@Home
[19:39:57] Loaded queue successfully.
[19:39:58] + Could not connect to Work Server
[19:39:58] - Error: Attempt #9 to get work failed, and no other work to do.

then you probably have everything set up correctly, and the problem is on Stanford's side.

If you can't connect to the assignment server, then probably you're behind a firewall or proxy or something else that is preventing the connection. Ask your network administrator how to get around this. F@H can be set to use different TCP ports, but the default is 8080.

Folding on a Notebook

If you are running the F@H client on a laptop, this section contains information that may be pertinent to you.

Can I keep my CPU from scaling up for F@H?
Because the client runs at low priority, the client should not cause the CPU governor to kick up the frequency. In other words, even though the client runs at 100% CPU usage, it should not cause the CPU frequency to go up, which keeps the fan slow and quiet. If this is not the case, then the frequency governor should be reconfigured.

If you use the userspace daemon powernowd (Ubuntu 6.06 and older), and powernowd is kicking up the frequency for F@H, try adding -n to the OPTIONS in /etc/default/powernowd.

OPTIONS="-q -n"

If you are using the ondemand kernel frequency governor (Ubuntu 6.10 and later), you can write to a file in sysfs to make the governor ignore nice'd processes.

echo 1 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load

To make the setting apply at boot-time, add the following to /etc/rc.local:

echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load

If you have several cores, you may need to repeat the commands for each one (changing cpu0).

Can I limit how much CPU power the client uses?
There is a utility called cpulimit that will limit the CPU time of a given application. Look at this link for a quick how-to. If there is demand, I will add support for it to fah_install.

Can I stop F@H while on battery?
One can configure ACPI (the power regulation subsystem) to stop the client when the system goes on battery power, and to start it again when the power cord is plugged back in.

Simply create two scripts in the relevant directories.

sudo -i
echo "/etc/init.d/foldingathome stop" > /etc/acpi/battery.d/fah.sh
echo "/etc/init.d/foldingathome start" > /etc/acpi/ac.d/fah.sh
exit

Replace the commands in quotes with the commands you use to start/stop the client.

Latest version of Ubuntu uses udev rules and the following is needed:

Add following in a new file /etc/udev/rules.d/80-fah.rules

ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Battery", ATTR{status}=="Charging", RUN+="/etc/init.d/foldingathome start"
ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Battery", ATTR{status}=="Unknown", RUN+="/etc/init.d/foldingathome start"
ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Battery", ATTR{status}=="Discharging", RUN+="/etc/init.d/foldingathome stop"

And reload udev rules or restart

sudo udevadm  control --reload-rules


CategoryNetworking CategoryScience

FoldingAtHome (last edited 2014-01-05 19:16:13 by knome)