HOW-TO: Folding@Home Competitively

folding

UPDATE: For troubleshooting your F@H setup head to the unofficial Team Hack-A-Day forum.

After announcing the Hack-A-Day Folding Team last week it has become one of the fastest gaining teams. [BillytheImpaler] put together this great guide for not only getting started with folding, but also getting the best folding performance out of your machine. Read on and join the team so we can break into the top 1000!

From Wikipedia

Folding@home is a distributed computing project designed to perform computationally intensive simulations of protein folding. The project’s goal is to add greater understanding to protein folding, misfolding, aggregation, and related diseases. Such diseases include BSE (mad cow), Creutzfeldt-Jakob disease, Alzheimer’s, Parkinson’s, among others.

Folding@home does not rely on powerful supercomputers for its processing; instead, the primary contributors to the Folding@home project are many thousands of personal computer users who have installed a small client program. The client runs in the background, and makes use of the CPU when it is not busy. In most modern personal computers, the CPU is rarely used to its full capacity at all times; the Folding@home client takes advantage of this unused processing power.

The Folding@home client periodically connects to a server to retrieve “work units,” which are packets of data upon
which to perform calculations. Each completed work unit is then sent back to the server.

From a hardware hacker’s point of view it is a project where individuals and teams compete to return the most
completed work in the least amount of time. This guide is intended to help new folders become acclimated to the program
and how to manipulate it and also to help experienced folders tweak their installations to squeeze every last bit of
performance out of their rigs.

Getting started

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.

Picking a client

There are several different clients available; Text Console, GUI, and Screensaver.

As far as speed is concerned Text Console>GUI>Screensaver. Similarly the clients are different in speed as
well; Windows>Linux>OSX This is due to the availability of compilers for each platform. Linux users can gain
speed by running the Windows console in WINE.

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 I highly recommend
the console version, especially to hack-a-day’s techier-than-average audience.

This how-to will focus on the console version for windows because it has the greatest performance and is the most
popular choice.

Setup

Run the console by opening it with windows or executing it through the command line.

  • User name [enter a username] pick one that no other H-A-D folder had chosen
  • Team number [44851]
  • Launch automatically at machine startup, installing this as a service [yes]
  • Ask before fetching/sending [no]
  • Use internet explorer settings yes/no yes if you have a proxy, else no
  • Use Proxy yes/no ditto
  • Allow receipt of work assignments and return of work results greater than 5MB in size (such work units may have
    large memory demands) yes/no (if you use the machine for things other than F@H and have less than 256MB RAM
    no, else yes because these units get far better points)
  • Change advanced options [yes]
  • Core Priority [idle]
  • CPU Usage [100]
  • Disable highly optimized assembly code [no]
  • Pause if battery power is being used (useful for laptops) yes/no
  • Interval, in minutes, between checkpoints (3-30) [I choose 15]
  • Request work units without deadlines [no]
  • Ignore any deadline information (mainly useful if system clock has errors) [no]
  • Machine ID (1-8) [1]

The program will now download a WU and begin crunching.

Press Ctrl-C to exit for now.

Open up regedit navigate HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesFAH@C…

You’re going to set keys in the Image Path. After the .exe type a space. And enter the following keys:

FOR all AMD 64 and Intel P4, Xeon (not Pentium Mobile)

-local saves F@H files into the same directory as the console

-verbosity 9 outputs to the log file the most data that the client will allow

-forceasm forces F@H to use SSE and 3DNow assembly optimizations

-advmethods client demands only the newest WUs ***VITAL ON P4S*** on P4s this, combined with Big
WUs=yes will get you QMD work units. These use 300 MB RAM for the first 1-2% then settle down into 200 MB after. Since
they use so much system RAM, they receive *Bonus Points* These units are the best there are because they are so fast
and so highly scored. If you have a P4 you can get these, so I suggest you do.

*QMD Note* Since _all_ AMD athlons do not support SSE2 and SSE3, none will receive QMD work units.
QMDs are an Intel only party, and trust me, they are a party. In the future F@H will contain a CPU-Z-like function
where it identifies hardware specifically to better use participant’s computers. Expect this version to be out in early
2006.

FOR Pentium Mobile

(which BTW are fantastic performers for F@H)

-local

-forceasm

-verbosity 9

Lately, by not setting -advmethods I’ve gotten better WUs (more 600 pointers), I don’t know why, it sees like that’s
what Stanford’s been doing.

Restart the machine to start the service.

Setup for Dual Core, P4 HT, and Dual Processor machines

The setup is exactly the same except for these things.

Put another copy of the console in a *different* directory. Otherwise they’ll interfere with each other.

Set the machine ID of the 2nd to 2, 3 for the 3rd, etc. up to 4. (Sorry to those of you with quad P4EEs, the client
does not support your 16 logical units.)

It is not possible to use both cores/virtual cores with the GUI client so that’s another reason to use the command
line version.

HyperThreading in Pentium 4s is very valuable. Running 2 clients at 100% will run slower than 1 client at 100%, but
it will finish 2 units in the same time it took the other to do 1.5. Thus it is faster in the long run. On my P4 I fold
2 QMDs simultaneously with 512 MB RAM and it is perfectly stable. You might not be so lucky. If you do not want to
receive QMDs for one process or the other, remove the -advmethods flag.

The nice thing about single processor P4 machines is that you can run F@H on one thread and run the OS web browser
and the like on the other extra 15% that HT gives you. This means that you are not going to slow down your progress by
using the machine.

Running F@H

Disable any screensavers, as they rob you of valuable idle processing cycles. I set mine to go blank after 5
minutes, and off after 10 (to save electricity). Leave your machine 24/7 if you can take it. Computers that are off do
not compute anything. Recruit others to fold under your username if you are persuasive.

You will appear on the stats
page
when you have completed a WU. The database servers update about every 3 hours so you might have to wait a few
hours to see evidence of your units, but they’ll show up. You can monitor your progress with
FAHMON or
EMIII. I prefer FAHMON because it uses far less
memory to run and starts up faster. EMIII is more powerful, features visualizations of the proteins, and is able to
monitor multiple clients over a network. Use whichever.

To disable the service for gaming, compiling video encoding, or anything else that you want, run services.msc,
scroll down to the FAH process(es), click on each and select “Stop the service.” Repeat this again to restart it. I
game on my machine with F@H running, but if you’re going to do anything that really kicks your computer’s ass (Doom 3,
Half-Life, that sort of thing) feel free to stop it.

Overclocking

Officially, Stanford pooh-poohs overclocking because it can lead to instability of the simulation. However, this is a
hardware hacker’s site so I’ll discuss it. If your machine is heavily OC’d and you are seeing weird stats reported on
the Team stats page i.e. 5 work units returned but 5 points granted, you probably are seeing early work ends (EWEs).
These are where the simulation reached a point where it could not continue. This is usually caused by an unstable OC,
though not always. If this is the case you should turn your OC down a bit to lend stability to the system. An OC’d rig
is no use to anyone if it is too unstable to execute code. I have a P4 Northwood 2.4GH that I am running at 3.1GHZ
perfectly stable with the stock HP heatsink so it is certainly possible to OC and fold, just don’t over-do it.

Borging

Named after the Star Trek race of assimilation, Borging refers to installing F@H, or any DC program, on someone’s
computer, usually without their knowledge. It is explicitly forbidden by the F@H EULA but folks do it anyway. I have a
few b0rgs out there so I’m not one to tell you not to do it. Just be careful, people have
gotten fired over b0rging. There is a program being
written by a fellow 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. I hoped to
have a beta out for testing with this post, but it is not quite ready for the spotlight yet, so you’ll have to wait to
get your b0rg on.

Conclusion

Have fun. That’s why most people run F@H. It’s not about the science as much as it’s about the competition and the
camaraderie. Folding is an addiction; one of the few healthy addictions known to man. We at Team Hack-A-Day are on one
of the fastest growing teams on the planet, and we’d like to break into the top 1000 worldwide within the next month.
So join up, pay attention to your stats, and have a good time. Get crunching, folks.

110 thoughts on “HOW-TO: Folding@Home Competitively

  1. Does anyone have information regarding cluster performance? I’m in the process of setting up a dedicated ~20 box compute/compile cluster. I’ll be running folding@home exclusively. any suggestions on configuration?

  2. Hello Steve. I’m sorry to have missed this post for so long but I don’t check this page quite so often now that we’ve a forum at http://teamhackaday.com

    If by cluster you intend to set the nodes so that they all work on a single work unit simultaneously like most modern supercomputers would do, you’re out of luck. All existing FAH clients are single threaded only.

    However you can definitely set it up so that each node works on its own work unit. It would be massively parallel with each node taking hours or days to crunch a WU but turning in many WUs. Each CPU needs its own client. Pocketlnt has a 10 node cluster described and photographed here: http://teamhackaday.com/viewtopic.php?p=109#109

    Hop on over to the forum if you haven’t already. I’d love to see this cluster up and crunching!

  3. I did everything this guide told me to do but when I look under Windows Task Manager in the Processes tab it says that FAH502-Console is using 0 of my CPU and that my system idle process is using all of it when I’m idling. Is this correct? or should the FAH be using my CPU. Also when I check the log I’m still at 0 steps out of a lot. Am I not waiting long enough? (it has been half an hour).

  4. Hey, could you help me out with starting up my own team, and also, if you help me out with this one question, then I will join your team after I get mine started up, and after I finish this rather long list of people that want crown on pr2…
    the question:
    How would I (maybe) hack F@h so it would run faster, and take about 5 days for every 5,000 points? Otherwise, it takes me about 2 months for every 5,000 points!

    Thanks!
    woodl

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.