The software involved in the Folding@home project consists of many collaborating parts: several kinds of servers and a variety of clients. Folding@home uses a client-server model where the clients receive work from the servers, process it and return the processed results back to the servers where the results are analyzed.
Although the client retrieves work from the servers in the form of Work Units (WU), it doesn't actually process the WU itself. Instead the client runs a separate program called a FahCore to process the WU. The client then monitors the FahCore and when it finishes folding the WU, it uploads the wuresult to the server.
The client mostly manages the FahCores that do the work. The client automatically downloads the FahCore if the WU requires a more recent version than is available on the system or if the required FahCore isn't present on the system. The separation of the monitoring/networking and folding/processing into the client and FahCores creates great flexibility. This approach makes it possible to introduce new FahCore with improved scientific capabilities without requiring all users to install a new client.
Currently a variety of clients are available in the Folding@home project for a variety of operating systems (OS) and hardware. New F@H clients will be developed for other platforms only if the Return on Investment of additional computing power makes the development effort for the new platform viable. For more details, please refer to Alternative FAH Platforms
Below is the list of commonly used operating systems.
Windows XP (32 bit & 64 bit)
Windows Vista (32 bit & 64 bit)
Windows 7 (32 bit & 64 bit)
Linux (32 bit)
Linux (64 bit)
Note: Mac PPC is no longer supported details.
Below is the list of common CPUs that are supported by the F@H CPU Clients.
Core 2 Duo
Below is the list of common GPUs that are supported by the latest GPU 3 BETA Client.
Take note that folding on laptops increases heat output and that appropriate precausion is needed.
ATI Radeon HD 5000 Series & its laptop variant
ATI Radeon HD 4000 Series & its laptop variant
ATI Radeon HD 3000 Series & its laptop variant
ATI Radeon HD 2000 Series & its laptop variant
Nvidia GeForce 400 Series & its laptop variant
Nvidia GeForce 300 Series & its laptop variant
Nvidia GeForce 200 Series & its laptop variant
Nvidia GeForce 100 Series & its laptop variant
Nvidia GeForce 9 Series & its laptop variant
Nvidia GeForce 8 Series & its laptop variant
|GUI :||available as Graphical client|
|CLI :||available as Text-only Console client|
|PS3 :||Playstation 3 specific client|
|OS/bit||CPU client||SMP client||GPU client||PS3 client|
|Windows/32 & 64||GUI, CLI||CLI||GUI, CLI|
|Mac OS X/x86||CLI|
Participating in the Folding@home project can be done by running one of the many clients available. For novice users on Windows and Mac OS X there is a Graphical (GUI) client available. For more experienced users, there is the Console (CLI) client.
The graphical client allows the user to configure the F@H Client through a window. All options are available there and are clearly labeled for easy identification. The only feature that is GUI specific is the ability to pause and resume the Client.
The Console client runs inside a command prompt (DOS box), or command line interface (CLI), where it prints output with information to the user. There are no graphics included in this type of client. The Console client is available for Windows, Linux, and Mac OS X. The Windows console client has the capability to be run as a system service requiring no user intervention. One cannot pause/resume the folding when using this F@H Client Edition, instead you have to exit and restart the F@H Client.
The Folding@Home Project has a diverse range of Clients that can run on a the majority of Operating Systems. Some of these Clients are stable and can be used without any issue while others are in BETA Stage which are stable on a wide range of hardware/software but an occasional bug may come your way so you may need to monitor these F@H Clients. F@H Clients can make use of the CPU or the GPU depending your system and your choice of contribution.
These Clients will use the CPU in your system. A huge variety of CPUs are supported from Intel and AMD (supported CPUs).
The CPU client is the traditional Folding@home client meant to run on a single CPU. Before the advent of the SMP client the only way to use multiple CPUs in a single system was to run multiple CPU clients. You can read about the CPU client in more detail on its dedicated wiki page and the official FAQs linked on the CPU client page.
The SMP client is the first High Performance client and was first released for Linux (64 bit) and Mac OS X and a bit later for Windows (32 bit). It used the new SMP core which is the first FahCore able to use more than one CPU and/or CPU core in a single system. The SMP client uses the program mpiexec to manage the FahCore instances; mpiexec implements a Message Passing Interface (MPI) for communication with the FahCores. Later, DEINO was added to support Windows 64 bit. You can read more about the SMP client on its dedicated wiki page and in the official FAQs linked on the SMP client page.
Note: The Client is no longer supported.
The SMP2 client is the successor of the SMP client and is currently available through the High Performance Clients download page. It currently only supports Windows (32 bit & 64 bit), Mac OSX, Linux (64-bit) platforms. The client uses the new Gromacs A3 core which uses threads and is no longer dependent on MPICH or DEINO. This client is also the first to work with the new Quick Return Bonus system to encourage the fastest return possible of work units. A guide on how to install this client on Vista/Windows7 is available here. You can read more about this client on the official Installation guide.
These F@H Clients will use the GPU present in your system. A huge variety of GPUs are supported from ATI and Nvidia (supported GPUs). You have to make sure to use the correct GPU Client with your GPU to ensure that it functions correctly.
The GPU client was the first High Performance client for Windows and it was part of the Folding@Home Petaflop Initiative (FPI). It used a customized version of Gromacs' mdrun to run Molecular Dynamics simulations on the Graphics Processing Units (GPUs) from ATI. You can read more about the GPU client on its dedicated wiki page and in the official FAQs linked on the GPU client page.
Note: The GPU1 Client is no longer supported.
This is the successor to the GPU1 Client and works on Windows (32 bit & 64 bit) platform. It is capable of using a majority of GPUs from ATI and Nvidia. Supported GPUs from ATI are 2000 Series and up while Nvidia supports 8xxx series up to gt200 series. Fermi GPUs need GPU3 BETA Client. For installation, please refer to the official guide.
Note: There will not be any more new Projects for GPU2 Client. Once the current ones are finished, you will have to upgrade to GPU3 Client if you want to continue folding on your GPU.
The is the future of folding on GPUs. This Client was released on 25 May 2010 to public for BETA Testing. It supports virtually all modern ATI and Nvidia GPUs. An Official Installation Guide and a User Written Guide is available.
The goal is to move from CUDA/BROOK to OpenMM/OpenCL.
Currently V7 of the F@H Client is being tested. This F@H Client is a complete re-write of the F@H Client and will be a unified F@H Client. More details can re read in Professor Vijay S. Pande's blog post and on the help forum.
Due to the clients' being designed around very minimalist programming, there will always be features that members of the community feel are missing from the clients. This opens up the opportunity for developers in the community to write separate tools to compliment the client itself. There are numerous 3rd party tools (Third Party Contributions) available, performing a wide variety of functions from monitoring clients/gathering statistical data to install scripts for linux clients, diskless/headless installers ect.
The Windows clients use the registry to store and retrieve the UserID. The Linux and Mac OS X clients use a local file. The Windows client launch location behavior depends on the presence or absence of a registry entry. The table below shows where a client gets its User ID and launch directory in each situation:
|Client||User ID Location||Default Location||If not in Registry||If -local client flag is used|
|Windows Console (CPU & GPU)||Registry||Registry||Uses Local||Uses Local|
|Windows Graphical (CPU & GPU)||Registry||Registry||Creates Registry Key||Uses Local|
|Linux (CPU & SMP)||machinedependent.dat||Uses Local||Not Applicable||No Effect|
|Mac OS X (CPU & SMP)||machinedependent.dat||~/Library/Folding@home||Not Applicable||Works from current directory instead of default location|
Note: this information is somewhat out of date. The v6 client ignores the -local switch. And the Systray client has replaced the Graphical client. Systray clients use an %Appdata% folder to store client data.