The FAH client on Linux

This page is based on The FAH Linux HOWTO.

Two Sets of Configurations
Once you have installed the FAH client, you will want to configure a few settings. Configurations are managed in two ways.

First you will want to do the FAH log configurations, which you will see at the beginning of the FAH client, right after you start it up.

Secondly, there are some optional settings you may want to do. These are command line switches, which must be entered in the shell (a terminal window).

Command Line (Shell) Configs
To see a list of the possible commands you may want to enter, you can trick the FAH program into providing a list for you. All you have to do is tell FAH something it will not understand, such as '-help':

 

This will give you a list of options which will look something like this:

 

Log File Configs
Log file configurations are set up after you start up the FAH504-Linux.exe program.

The settings for USER NAME and TEAM are optional. You may choose to include them or leave them as anonymous. If you are a member of a Folding@Home team, you will want to make sure to input the team number and your user name at this time.

You do NOT have the option to choose which project or which type of project ( Tinker, Gromacs, DGromacs, PMD, QMD, etc.) your computer will be running. This is determined by the FAH servers. http://folding-community.org/viewtopic.php?p=19672#19672

The only exception to this is the deadline-less WU selection: http://folding-community.org/viewtopic.php?p=82495#82495

Configuring the FAH Client in the Shell
Note: A request for a yes or no answer can be typed as: 'yes' or 'y' and 'no' or 'n'

Also, you can simply hit ENTER if the response at the end of the line with a question mark is the SAME response that you want, or, you can also type out your answer - which is the harder way!

Let's get started!

-config
First, start up FAH in a shell (terminal) window. Use the 'change directory' command (cd) to navigate to the directory where you put FAH504-Linux.exe. Then start the program with the './' command:

 

This should start the program running. It starts out with the Folding@Home heading and the license agreement.

(Header/agreement is always at the top of the log; but for the sake of saving space,(and not boring you!) it will not be shown again in this document.)

 

 

Type in the name you want to be associated with. Use http://folding.stanford.edu/download.html section "How do I choose a username?"

 

These links will help you determine a team number: http://folding.stanford.edu/cgi-bin/searchteamstats for existing teams or http://folding.stanford.edu/cgi-bin/createteam to start new one... http://folding-community.org/viewtopic.php?t=1751

 

This is useful mostly for modem users. If you run FAH as a service, then pay attention to the fact that in usual circumstances you will not be able to "answer" to any of FAH's questions so service users should say no. Take a look at http://folding-community.org/viewtopic.php?t=9537 for an example of possible issues.  

If there is a proxy blocking your freeway to the (Inter)network, then fill in the blanks: (If you're not sure, or you have a gateway, leave it set to no.)

 </tt>

 </tt>

In terms of science, to gain more ground a FAH work unit (WU) will need to be larger in terms of simulated time and protein size. As these new WUs are large in file size and memory footprint (even 100MB), the Pande Group has decided not to send out these WUs to donators who are not aware of the risks of running them. If your machine can cope with these WUs, then answer "yes." If you don't know or aren't sure, answer "no."

Note: The FAH assignment server will check your machine's capabilities in terms of available memory and will not send the larger WUs if there is not a suitable amount of memory.

 </tt>

To get more out of the FAH client, you should answer 'yes'. If you answer 'no', the client will start up and no additional configurations will be offered for you to make.

 </tt>

idle = priority 34 and nice level 19; low = priority 28 and nice level 13; (low is actually at a higher priority level than idle.)

Note: FAH will always use all unused processing time, so in most cases, the priority setting won't change much.

See: http://folding-community.org/viewtopic.php?p=16955#16955

 </tt>

This is the opposite of -forceasm as this will disable the optimized code in Gromacs and other advanced cores.

 </tt>

This will specify the interval of the writing state of the running WU back to the disk. Tinker WUs do not use this option.

 </tt>

no-pref = FAH client will get the WUs of whatever project is available/urgent; no = You wish to get the normal mix of Tinker, Gromacs & DGromacs WUs; yes = You wish to get deadline-less Tinker & Gromacs WUs;

Note: Deadline-less WUs were designed to replace GAH WUs and the "yes" option is intended for computers that are slow, or where the uptime is too infrequent to get the WUs completed before deadline.

Note: Certain command line parameters such as -advmethods override this setting, so if you request deadlineless WUs and don't get them, check the parameters Running projects and deadlines information: http://vspx27.stanford.edu/psummary.html

 </tt>

Because WUs from newer projects do incorporate the deadline checking there is a need for a reliable system clock, but when the system clock can not be trusted (dead battery maybe?) then it is advisable to ignore the system clock. This setting does not change the actual deadline on the WU.

 </tt>

This is useful if you want to run multiple copies of a FAH client on the same machine. Generally speaking, you will want to run one copy of FAH for each core in your machine. If you have only one CPU in your machine, enter '1'

In order to run multiple FAH clients on the same machine it is better to have every FAH client set up with a different Machine ID value.

!!!Attention!!! From http://folding-community.org/viewtopic.php?p=80396#80396 : "People running multiple F@H clients on a cpu--even on hyperthreaded P4s, are having a negative impact on the science because the WU aren't being turned in quickly enough.

For most projects except Timeless Gro/Tinker, new work unit generation requires the return of prior work units. When the prior units are delayed because they are sharing CPU time with other clients, it slows down the project."

The impact is becoming significant for Stanford, and they would appreciate your avoiding doing it.

Look also: http://folding-community.org/viewtopic.php?t=10168

!!! Attention !!!

Depending on your FAH setup procedures and the number of FAH clients you want to run on one machine you may have to pay attention to the Machine ID values: 1. If you download separate FAH clients to different directories you can set the Machine ID to 1 for each client and get an unlimited number of FAH clients per box. You will have to start every client twice, as there is now a "lock file" in /tmp/ and FAH will check the Machine ID value from there:

 </tt>

Or You can issue "rm -ifdr /tmp/fah" before you start another client: http://folding-community.org/viewtopic.php?p=55709

2. If you copy one FAH directory to another, then either remove the "machineindependent.dat" files or change the MachineID value, so each "cloned" FAH client has a different MachineID value (maximum 8 of this kind of FAH client per box). Note: If you remove the "machinedependent.dat" files, then there is no need to change MachineID values and you can run an unlimited number of FAH clients per box, but you still have to start the clients twice or use the "rm -ifdr /tmp/fah" to get them going.

http://folding-community.org/viewtopic.php?p=25214#25214 http://folding-community.org/viewtopic.php?p=25764#25764 http://folding-community.org/viewtopic.php?t=7173

After these configurations it will download and start the "crunching" of WUs.

If you need to stop the client, press [CTRL+C].

-configonly
It is the same as "-config" except it will terminate the FAH client after you have configured it:

 </tt>

-queueinfo
This is for obtaining a status of finished but unsent WUs. Is your server down again? Take a look at: http://folding.stanford.edu/serverstat.html ):

 </tt>

You may try to force an upload of queued WUs or delete these...

-delete x
If some particular WU is refusing to leave a queue, and if this is not a server problem, and it has been there for weeks, then you can remove it:

 </tt>

-send x
To force the upload of a particular WU (0..9) or 'all':

 </tt>

(Bad luck. Try to upload again, delete this WU or fold on...)

-verbosity x
Should give a different amount of "human-readable" information.

0 - minimum amount of information ... 9 - maximum amount of information (The default value is 3)

 </tt>

...FAH client will be started with given verbosity setting.

-pause
Pause after finishing and trying to send current unit.

 </tt>

-oneunit
It is almost the same as "-pause" except it will terminate the client when the WU is done.

<tt> </tt>

-forceasm
The newer cores, including Gromacs, incorporate some/heavy SSE/SSE2/3DNow/Altivec optimizations. This may overheat machines with inadequate cooling and the calculations may go (terribly) wrong or the core may crash. Or ... the FAH client may decide that optimization is to blame for this and will turn off the optimizations. Usual "crunching" penalty for this type of event is quite heavy (2.5x on AMD Athlon XP) and if you think it is a false alarm (each "crash" must be studied carefully and using this switch "just in case" do not make any good to FAH project!) then use this switch to turn these optimizations back on.

Note: The Tinker core does not have any settable optimization, so this switch has no effect in this case. http://folding-community.org/viewtopic.php?t=3374 http://folding-community.org/viewtopic.php?p=33935#33935

The -forceasm will use whatever optimizations your hardware has (on Intel CPUs: SSE/SSE2, on AMD: SSE/SSE2/3DNow+, on Mac: Altivec) If the requested extensions are not available, Gromacs will go back to unoptimized code. These optimizations will be used by default, except after an improper termination, so -forceasm is generally unnecessary. http://folding-community.org/viewtopic.php?p=62031#62031 http://folding-community.org/viewtopic.php?p=63888#63888

Note: If the core is using optimizations, you will see an "Extra SSE boost OK." message except for the Tinker core, which has no optimized code. (Similarly "Extra Altivec boost OK" or "Extra 3DNow boost OK")

Historical Note: At one time, there was a serious issue with AMD running SSE optimized code, and because of this the usage of SSE optimizations on AMD CPUs was not advised. This is no longer true. http://folding-community.org/viewtopic.php?t=4444

Eventually (it took "only" one year) AMD cooperated with Pande Group/Gromacs developers http://folding-community.org/viewtopic.php?t=6682 and identified the problem: http://folding-community.org/viewtopic.php?p=61430#61430 ( http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25759.pdf )

<tt> </tt>

-advmethods
This will turn the client into a Beta testing platform. If you run a FAH client with this switch, then occasionally/constantly this client will be fed with experimental WUs which may use experimental cores. So, at the worst case there may be (some?) crashes (I have never seen any caused by FAH but ...) and/or degradation of "received points". The number of EARLY_UNIT_ENDs will be higher than normal, but in most cases you'll get a reasonable number of points. http://folding-community.org/viewtopic.php?p=13793#13793 http://folding-community.org/viewtopic.php?p=16116#16116 http://folding-community.org/viewtopic.php?t=2207 http://folding-community.org/viewtopic.php?p=16659#16659 http://folding-community.org/viewtopic.php?t=9070 <tt> </tt>

-freeBSD
To enable the Linux client to be run on FreeBSD systems.

This will cause the client to automatically run brandelf on all the Cores downloaded to brand them as being a Linux executable.

<tt> </tt>

-openBSD
To enable the Linux client to be run on OpenBSD systems.

This will cause the client to automatically run elf2olf on all the Cores downloaded to convert those Linux binaries to OpenBSD OLF executables.

<tt> </tt>

-smp x
This causes the client to run in SMP mode, on x86-64 compatible computers and operating systems. Setting the x variable to a number greater than 4 allows for computers with more than 4 physical processing cores to contribute all of their power to one work unit. This flag is present only in v6.00 or later versions of the FAH software.

<tt> </tt>

Links

 * Folding@Home Linux Client Homepage
 * Folding@Home Linux Client User Guide
 * Folding@Home Linux Client ChangeLog