Windows SMP Client Installation Guide (DEINO version)

Note: Due to the way the Windows SMP client is setup, it's a complicated process to install it properly. For this reason, it's essential to read the whole guide first before attempting the installation. There is a lot of things to be careful like the -smp -deino flag requirement or it won't work properly.

In addition to the instructions below, we also suggest you check out instructions on the FAH wiki.

If you wanted to install the MPICH version, please refer to this guide.

Beta client warning

We often release clients early for donors to beta test. These beta versions likely have some rough edges, but we expect that they should work reasonably well for all donors.

As in the use of any beta software, please make sure to back up your hard drive before installing. DO NOT run a beta client if you or your machines cannot tolerate even the slightest instability or problems. Beta clients' and servers' performance may vary significantly from standard FAH clients during the development process, including but not limited to work unit shortages, server downtime for upgrades, short notice of client upgrades, and Points Per Day that differs a little or a lot from the developmental benchmark level.

Finally, note the beta clients may require a lot more maintenance due to their experimental or beta nature. If you would prefer to have a client which runs as smoothly as possible, we suggest you run our main public client, not a beta client. If you run a beta client, expect a much more complex experience and much more work to keep the client running.

Table of contents

Requirements for installation

Before you start the installation process of the DEINO SMP client, there are a few requirements you must check to make sure the client will work correctly :

  1. You must have a 32 bit OS for DEINO to work. If you have a 64 bit OS, you must pick the MPICH version since DEINO doesn't work at all. The MPICH guide can be found here.
  2. You have a computer with at least a recent dual core or better to run the SMP client. This mean than the older single core processors won't be able to run it. Since it's a high performance client, if you notice that after installation, it doesn't always meet the deadlines, please use the uniprocessor client instead.
  3. If you are installing this under Windows XP, you are required to download and install the Microsoft .NET framework v2.0. You can download the package from Microsoft. Windows Vista already includes the necessary package by default so it's not necessary to do it if you install the client under Vista.
  4. If you are running Windows XP, you need to have the Service Pack 3 (SP3) installed to make the client work right. If you don't have this service pack, it's possible the client will not behave properly.
  5. The Windows user account you are using to install the client must have a password and have enough administrator rights. Blank passwords will not work and you must have a password only with those valid characters : A-Z, a-z and 0-9. Special characters should not be used to avoid any potential issues. If you change the password of the Windows user account, you need to rerun install.bat. The password being used to install is encrypted in the registry and not transmitted to the Stanford servers.

Note: If you already have DEINO installed, it's suggested to uninstall it before following the guide to avoid any potential issue.

Installation

Note: Under Windows, antivirus software can interfere with the Folding@home client files and cause errors. We suggest configuring antivirus software to exclude the FAH client directory and especially the Work directory from the antivirus scanning list. This can be done by going into the exclusion list panel that every antivirus should have. The work subdirectory contains semi-random binary data and can confuse overly aggressive heuristic virus scanning.

First, create a new folder on C:\Users\[username]\ or on the root of C:\ (what matters here is to not put it in C:\Program Files\ to avoid issues with permissions, especially under Vista) with a simple name without spaces or special characters. A good suggestion is to name it FAH. The reason for this suggestion is because Vista has some strict restrictions when a program is run from the Program Files folder. Doing this will avoid lots of issues.

Go to the High performance Windows clients download page. There will be a DEINO or MPICH package available for download. For the current guide, download the DEINO package.

After you downloaded it, you will see a package in .zip format so you need to unpack it to the folder you created above. With Windows Explorer, browse to the folder you just unzipped the client and you will see a bunch of files like this :

To make the following steps easier to do, it's suggested to rename the executable to something easy to remember and to type like fah6.exe (right-click on the executable file, select Rename and change to a new name).

DEINO Configuration

Note: If you have DEINO already installed on your computer, please uninstall before following the guide to avoid potential issues.

Open the Command Prompt window by clicking on the Start menu then type cmd.exe on the Run box and click on Ok. If you are under Vista, you must run it with the Run as administrator option or you will not have sufficient rights to complete the following steps (to get this, right-click on Command Prompt icon then select Run as administrator). With Windows XP, it's sufficient to run cmd.exe as is.

Here is what it should look under Vista (typed cmd.exe then right-click on it) :

You can use CD to change the directory and type D:\ (or any other letter) to change the drive if the client is not installed on C:\ by default. With those commands, move to the folder you created earlier (C:\FAH in our example). Here's a sample command :

 cd \fah

When you are here, type install.bat and you will get the installer messages (in a command prompt) like that :

 C:\FAH>install.bat

 C:\FAH>msiexec /i DeinoMPI.msi

This will start the installation of the DEINO MPI client. You will see a dialog box like this :

Just press Next to get the next window :

Check to accept the license terms and click Next to enter the path :

Unless you want to install in a different place, you should leave the default path there and press Next. The next window will just confirm the options so press Next once more to install it. When it's done, press Finish to close it. The batch will then present you with the credentials store installation and configuration below.

 C:\FAH>create_credential_store true

 This program creates a Credential Store for the current user.
 The credential store contains a public and private security key
 and zero or more secure user credentials.
 Deino MPI uses this store to establish secure connections between machines
 and store sensitive information like user credentials.

 Do you want to create a new store (yes, no)? [yes]

Press enter since we want to create a new credentials store

 Please enter a passphrase to protect the private key:

Don't enter anything, just press enter since we don't want to use a passphrase.

 Are you sure you want no password for the private key (yes,no)? [no]
 yes

Type yes and press enter to confirm we don't want a passphrase.

 Options for encrypting the private key:
   protect   - Use the ProtectedData.Protect/Unprotect methods to encrypt.
   none      - Do not encrypt.
 Please enter a method to encrypt the private key: [protected]

Just press enter since protect is what we wanted.

 Available locations to create the store:
 (1) Windows Registry
 (2) Hard drive
 Where would you like to create the store (1,2): [1]

Press enter again since we want it to be stored in the registry. If you have a removable media plugged, the available locations list will be different (the removable media entry will be (1) so select (2) instead for the Windows Registry).

 Credential store written to the Windows Registry.

 C:\FAH>manage_credentials /add
 Enter the account name: [COMPUTERNAME\Username]
 Enter the account password:
 ************
 Enter the password again to verify:
 ************

Accept the account name by pressing enter and enter your Windows password twice here. If you need to use a different username (like a local windows account instead of a domain account), change the information first.

 C:\FAH>net start deinopm
 The DeinoMPI process manager service service is starting.
 The DeinoMPI process manager service service was started successfully.

 C:\FAH>mpiexec -np 2 foo
 If you see this twice, MPI is working
 If you see this twice, MPI is working

 C:\FAH>

When the line mpiexec -np 2 foo is executed, you may get a firewall popup asking you to allow or deny mpiexec.exe. Make sure you allow it or it won't run properly. When you are done, you should see the If you see this twice, MPI is working being displayed twice. If you don't see this or you see a different error, check why and fix this before retrying. If it is running correctly, continue with the client configuration below.

Client configuration

The next step is to configure the client. Open a Command Prompt and change directory to the location where you unzipped the FAH client.

Note: To install the FAH client to run as a service (a bit later in the setup), the Windows XP user account running the setup must have Administrator privileges. In Windows Vista and newer, the Command Prompt used to setup the FAH client as a service must be opened with Run As Administrator privileges. Do this by clicking on the Start button. In the Search box, type command prompt. In the list of results, right-click Command Prompt, and then click Run as administrator. If prompted for an administrator password or confirmation, enter the password or provide confirmation. This would be a good time to change to a user account with Administrative rights, or to open a new command prompt using the Run As option.

Type this in the command prompt to begin (assuming you renamed the FAH executable to "fah6" or "fah6.exe" depending on the file view settings as noted above):

 fah6 -configonly -smp

The client will display some information and then prompt you for answers to configuration questions. Note that for most answers, the default setting is the recommended setting. Here is an example of what is displayed on screen, with an explanation of each option:

 Launch directory: C:\FAH
 Executable: fah6
 Arguments: -configonly -smp

 [16:25:22] Configuring Folding@Home...  

 User Name [Anonymous]?
Enter your FAH User Name (not the Windows user name). Or press enter to accept the default user name Anonymous. Almost everyone selects a personalized user name.
 Team Number [0]?
Enter your FAH Team #. Or press enter to accept the default Team # 0 and go to the next question. You can join a team at any time by configuring the client again and entering the new team number. This applies to all client settings.
 Passkey []?
Enter your passkey, or press enter to leave it blank and go to the next option. Use of a passkey is optional. However, a passkey is required to be eligible for the quick return bonus on SMP2 work units. You can find more information about Passkeys here.
 Ask before fetching/sending work (no/yes) [no]?
Because of the short deadlines on SMP work assignments, persistent connections are strongly recommended and this option should be set to no.
 Use proxy (yes/no) [no]?
If you are connected to a proxy, enter yes and configure the proxy options for proxy user name, password, address, etc. Or press enter to skip.
 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]?
This option states a preference for the size of work units downloaded and uploaded to the project servers. Note that all SMP WUs are large in size, so big is the required setting. Bigger units will also have bigger memory requirements. If you run on a slower broadband or dialup internet connection, small is the recommended setting to ease your bandwidth usage and you may want to switch to the CPU client instead.
 Change advanced options (yes/no) [no]? yes
If you want to change the advanced options, enter yes. It is not mandatory but is recommended for SMP installs.
 Core Priority (idle/low) [idle]?
This adjusts the FAH client priority level. This is similar to, but not the same as the Windows priority setting. In most cases, the default idle setting is recommended.
Note: For better performance when mixing CPU or SMP clients with GPU clients, raise the priority of the GPU clients by selecting the low priority setting. Do NOT change the Windows priority settings for the client or fahcore.
 CPU usage requested (5-100) [100]?
This will adjust the percentage of CPU usage. The FAH client only uses spare CPU cycles not used by other programs, so reducing this setting is not typically necessary. However, if you want to lower system temperatures, or reserve CPU cycles for more intensive computer tasks, enter a number below 100.In the SMP client, changing this setting does not reduce CPU usage.
 Disable highly optimized assembly code (no/yes) [no]?
If you are having issues running the client, disable this. For 99.9% of the users, leave this at the default setting since this reduces the client performance a lot.
 Pause if battery power is being used (useful for laptops) (no/yes) [no]?
If you run a laptop, set this to yes to pause if the laptop is not plugged on the wall. This will avoid the client draining the battery.(if name WinSMP*:)In the SMP client, this setting may not behave as expected.(if name WinGPU*:)In the GPU client, this setting may not behave as expected.
 Interval, in minutes, between checkpoints (3-30) [15]?
Number of minutes between each checkpoint where the client is writing the client progress to disk in case of unexpected interruption. 15 is the recommended setting.
 Memory, in MB, to indicate (1013 available) [1013]?
Sets the amount of memory seen by the work servers. By default, it shows the full system memory amount. Note that reducing this setting does not reserve more memory for other programs. However, reducing this setting will prevent the client from downloading memory intensive work units. A setting too low may prevent the client from getting any new work. (if name WinSMP*:)In the SMP client, .5 GB per CPU core is the minimum, while 1 GB per core is recommended.
 Set -advmethods flag always, requesting new advanced
 scientific cores and/or work units if available (no/yes) [no]?
This is the same as using the -advmethods command line flag, except -advmethods will not appear on the arguments line in the fahlog. This option states a preference to request late stage beta work units, which may be less stable than regular work units. May cause work unit size and PPD to increase, decrease, or not change.
 Ignore any deadline information (mainly useful if
 system clock frequently has errors) (no/yes) [no]?
Only set this to yes if your local computer clock is having issues keeping the correct date and time.
 Machine ID (1-16) [1]?
This is the Machine Number of the client. If you are running more than one client under the same operating system, you need to have a different Machine ID for each client on that machine. If you are installing a single client on multiple computers, you do not need to change this since this is only for installing multiple clients on the same computer.
 Launch automatically, install as a service in this directory (yes/no) [no]?
If you want the client to run as a service, say yes and it will install a new entry in the services list. The next time you restart the computer, the service will start automatically and run in the background. SMP as a service is only supported in v6.30 and newer.
Note: The current Windows user account must have Administrator privileges to install FAH as a service. And rebooting the computer to start the client running as a service is required.
 The following options require you to restart the client before they take effect
 Disable CPU affinity lock (no/yes) [no]?
Not useful for SMP since it uses all cores.
 Additional client parameters []?
You can enter the client flags here so you don't have to type the flag each time you run the client. We strongly suggest you enter the 'smp 'deino flag, especially when running as a service. Do NOT enter -config or -configonly or any single-use flag in this field to avoid problems.
 IP address to bind core to (for viewer) []?
For future use when the Viewer is working better. Specifies the IP address of the machine of which the viewer should display the client output.

When you press enter after the last question, the configuration will end and you will be back to the command prompt. You have successfully configured the client so the next step is to start the client. Here are 3 ways:

  • By clicking on the executable icon (this assumes you entered the proper flags during configuration).
  • By typing fah6 on the same command prompt window. Enter the necessary flags (including the mandatory -smp -deino flag) if you didn't enter those during configuration.
  • Create a new shortcut to the FAH executable, and double click that shortcut icon (assuming you added all needed flags to the client setup).

Normally, if everything is done correctly, the client will be folding along fine. To verify the client is progressing, open the task manager and make sure there is one instance of the multi-threaded FahCore_a3.exe in the list. Or you can open the fahlog.txt file to see the client's progress.

Configuring the SMP client as a service

Warning: If you want to run the SMP client as a service, be aware this is currently unsupported by the developers. A bad configuration can cause the client to have issues and lose work units.

Note: The guide is validated with Windows Vista. A lot of people have a problem starting the service under XP so follow the steps at your own risks.

The first step is to start the client in configuration mode with the -configonly flag. When prompted, answer yes to modify the Advanced Options. When you are in the Advanced options section, look for this prompt:

 Launch automatically, install as a service in this directory (yes/no) [no]?

Enter yes to confirm the service installation. Continue (edit the options if needed) until you reach this line :

 Additional client parameters []?

Since the client will be running as a service, the additional flags must be entered here to make it work in DEINO SMP mode. In our case, enter -smp -deino -verbosity 9 then finish the configuration. Please note, it is no longer necessary to enter the service path variable with v6.23 and above.

At this stade, don't start the service yet because it must be edited to run with the proper parameters and permissions. For this, open the Services MMC by clicking on the start menu then type services.msc in the Run... box (XP) or the search field (Vista). When the Services console is started, find the newly added F@H service, which should be called Folding@Home-CPU-[1] :

If you didn't see, restart the client in configuration mode again and double-check that the service is being installed. Now, double-click on it and it will bring the Properties window. Click on the Log On tab to get this :

Select the This Account button then enter the same account you used to configure the DEINO client above. To make sure the account name is correct, it's suggested to click on the Browse button and find the account. Even if the password fields seems populated, delete them and enter the corresponding password.

You also need to make sure that the F@H service is started only when the DeinoPM service is started first. For this, you need to make sure that both the F@H and DeinoPM services is stopped (you can right-click on each service in the Services console and stop them if it is started).

Open the registry editor by going on the Start menu and type regedit.exe (same place as above to start services.msc). When the Registry editor window is open, find the service which is normally in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services branch. When you find it, click on it then add a new Multi-string value (REG_MULTI_SZ) then name it DependOnService :

When it ask for the value, enter DeinoPM which is the service name of DEINO then confirm it. You should see the result like that :

Close the registry editor then go back to the Services console. Double-click on the F@H service then click on the Dependencies tab. You should see that DeinoPM is listed as a dependency :

Alternatively, you can also create a .reg file to add the new entry. Open Notepad and paste this :

 Windows Registry Editor Version 5.00

 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Folding@home-CPU-[MachineID]]
 "DependOnService"=hex(7):44,00,65,00,69,00,6e,00,6f,00,50,00,4d,00,00,00,00,00

Change the contents of [MachineID] to the Machine ID your SMP client is configured. In our example, we assume it's 1 so it would look like [1]. When you are done, click on File then on Save As... to save as a .reg file (Give a name like fahservice.reg). When you are done, just click on the newly created file and it will pop a window asking if you want to add to the registry. Confirm the action and it will be added.

When you are done, you can either start the service yourself (suggested) by clicking on the first tab then click on the Start button or by rebooting. Check if it is started correctly and if not, double-check the account details.


For More Information, Please See:


Last Updated on September 02, 2010, at 12:27 PM