The FAH client on Linux
From FaHWiki
This page is based on The FAH Linux HOWTO.
Contents |
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':
cd /folding
./FAH504-Linux.exe -help
This will give you a list of options which will look something like this:
Folding@Home Version 5.04
Usage: FAH504-Linux.exe [-option1] [-option2] ...
Options:
-config Configure user information
-configonly Configure user information, then exit
-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.
Please note the above recognized flags and try again.
Press any key to exit.
Folding@Home Client Shutdown.
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:
cd /folding
./FAH504-Linux.exe -config
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.)
Note: Please read the license agreement (FAH4Console-Linux.exe -license).
Further use of this software requires that you have read and accepted this agreement.
Folding@home User Configuration
--- Opening Log file [October 1 22:31:30]
# Linux Console Edition #######################################################
###############################################################################
Folding@home Client Version 5.04
http://folding.stanford.edu
###############################################################################
###############################################################################
Arguments: -config
[22:31:30] - Ask before connecting: No
[22:31:30] - User name: Anonymous (Team 0)
[22:31:30] - User ID = 123456789ABCD
[22:31:30] - Machine ID: 1
[22:31:30]
[22:31:30] Configuring Folding@home...
User name [Anonymous]?
Type in the name you want to be associated with.
Use http://folding.stanford.edu/download.html section "How do I choose a username?"
Team Number[0]?
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
Ask before fetching/sending work [no] (yes/no)?
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.
Use proxy [no]?
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.)
Use proxy [no]? yes
Proxy Name [localhost]?
Proxy Port [8080]?
Use username & password with proxy [yes]?
Proxy Username?
Proxy Password?
Allow receipt of work assignments and return of work results greater than
5MB in size (such work units may have large memory demands) (no/yes) [no]?
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.
Change advanced options [no] (yes/no)?
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.
Core Priority [low] (idle/low)?
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
Disable highly optimized assembly code [no]? (no/yes)?
This is the opposite of -forceasm as this will disable the optimized code in Gromacs and other advanced cores.
Interval, in minutes, between checkpoints (3-30) [15]?
This will specify the interval of the writing state of the running WU back to the disk.
Tinker WUs do not use this option.
Request work units without deadlines (no-pref/no/yes) [no-pref]?
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
Ignore deadline information. (mainly useful if the computer's system clock frequently has errors) [no]? (no/yes)?
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.
Machine ID (1-8) [1]?
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:
"A potential conflict was detected:
Process 2608 is currently running and may also be a client with Mach. ID 1.
Program will now exit. Upon restart, this check will not be done --
you may wish to check that no client is currently running in
/folding/ before restarting."
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:
cd /folding
./FAH504-Linux.exe -configonly
-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 ):
cd /folding
./FAH504-Linux.exe -queueinfo
Note: FAH Heading is presented first then:
Arguments: -queueinfo
[11:39:16] - Ask before connecting: No
[11:39:16] - User name: Anonymous (Team 0)
[11:39:16] - User ID = 123456789ABCD
[11:39:16] - Machine ID: 1
[11:39:16]
[11:39:16] Loaded queue successfully.
[11:39:16] Printing Queue Information
CURRENT QUEUE:
00 EMPTY
01 EMPTY
02 EMPTY
03 EMPTY
04 EMPTY
05 *READY "Folding@Home" (78) 171.64.122.111:8080 December 24 11:19:42
| January 29 11:19
06 EMPTY
07 EMPTY
08 EMPTY
09 EMPTY
Folding@home Client Shutdown.
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:
cd /folding
./FAH504-Linux.exe -delete 4
Note: FAH Heading is presented first, then:
Arguments: -delete 5
[22:47:01] - Ask before connecting: No
[22:47:01] - User name: Anonymous (Team 0)
[22:47:01] - User ID = 123456789ABCD
[22:47:01] - Machine ID: 1
[22:47:01]
[22:47:01] Loaded queue successfully.
[22:47:01] + Benchmarking ...
[22:47:09] Deleting work unit #5 from work queue...
Folding@home Client Shutdown.
-send x
To force the upload of a particular WU (0..9) or 'all':
cd /folding
./FAH504-Linux.exe -send 0
Note: FAH Heading is presented first, then:
Arguments: -send 0
[22:48:53] - Ask before connecting: No
[22:48:53] - User name: Anonymous (Team 0)
[22:48:53] - User ID = 123456789ABCD
[22:48:53] - Machine ID: 1
[22:48:53]
[22:48:53] Loaded queue successfully.
[22:48:53] + Benchmarking ...
[22:49:01] Attempting to return result(s) to server...
[22:49:01] - Failed to send unit 00 to server
Folding@home Client Shutdown.
(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)
cd /folding
./FAH504-Linux.exe -verbosity 9
...FAH client will be started with given verbosity setting.
-pause
Pause after finishing and trying to send current unit.
cd /folding
./FAH504-Linux.exe -pause
Note: FAH Heading is presented first, then:
Arguments: -pause
[16:15:28] - Ask before connecting: No
[16:15:28] - User name: Anonymous (Team 0)
[16:15:28] - User ID = 123456789ABCD
[16:15:28] - Machine ID: 1
[16:15:28]
[16:15:28] Loaded queue successfully.
[16:15:28] + Benchmarking ...
[16:15:35]
[16:15:35] + Processing work unit
...
[17:28:20] Finished Work Unit:
[17:28:21] ARC file integrity verified
[17:28:21] logfile size: 2324
[17:28:21] Leaving Run
[17:28:24] - Writing 264148 bytes of core data to disk.
[17:28:24] end (WriteWorkResults)
[17:28:25] - Shutting down core
[17:28:25]
[17:28:25] Folding@Home2 Core Shutdown: FINISHED_UNIT
[17:28:25] CoreStatus = 64 (100)
[17:28:25] Sending work to server
[17:28:25] + Attempting to send results
[17:28:36] + Results successfully sent
[17:28:36] Thank you for your contribution to Folding@home.
[17:28:36] + Number of Units Completed: 538
[17:28:36] + Paused after finishing unit
[17:28:36] Press Enter to continue, Ctrl-C to exit...
-oneunit
It is almost the same as "-pause" except it will terminate the client when the WU is done.
cd /folding
./FAH504-Linux.exe -oneunit
-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 )
cd /folding
./FAH504-Linux.exe -forceasm
-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
cd /folding
./FAH504-Linux.exe -advmethods
-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.
cd /folding
./FAH504-Linux.exe -freeBSD
-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.
cd /folding
./FAH504-Linux.exe -openBSD
Links
- Folding@Home Linux Client Homepage
- Folding@Home Linux Client User Guide
- Folding@Home Linux Client ChangeLog
Categories: Linux | HOWTO

