Clients Overview

From FaHWiki

(Redirected from Clients)
Jump to: navigation, search


image:FAH_logo_32.pngThis is content for a proposed page merge between How tos & FAQ. Feel free to use the talk page to discuss


Contents

General

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 Core to process the WU. The client then monitors the core and when the core is finished processing, uploads the result to the server.


The client mostly manages the cores that do the work. The client downloads new versions of a core if the WU it will process requires a more recent version than is available on the system. It will also download other cores if a WU requires them. The separation of the networking and actual processing into the client and cores creates great flexibility. The client and cores remain quite small in download size, as they only contain the code they need. It also makes it possible to introduce new cores with new scientific capabilities without requiring all users to install a new client.


Supported Operating Systems & Hardware

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. See also: Alternative FAH Platforms


Currently the three most popular OSs are supported: Windows, Linux and Mac OS X. For a long time the only hardware supported was the Intel x86 (32 bit) architecture, running either Windows or Linux. But the release of the Mac OS X client added support for the IBM PowerPC (PPC) architecture.


Most F@H software is developed on Linux, and will also be available to Linux users before the Windows users. A notable exception is the GPU client which is Windows only, and will likely remain so due to its use of DirectX and dependency on the GPU drivers. Although new developments usually make their way to the Linux users first, the Windows users make up the majority share of the F@H userbase. See: Client statistics by OS


Most Linux development will find its way to the OSX clients quite fast because of their shared UNIX heritage. FreeBSD and OpenBSD do not have a client specific to those OSs, but are instead supported by the Linux client. The Linux client has support to automatically use brandelf and elf2olf to enable the Linux Cores to run on FreeBSD and OpenBSD respectively.


Clients Per Operating System/Architecture Matrix

Legend:
GUI : available as Graphical client
CLI : available as Text-only Console client
SS : available as Screensaver client
PS3 : Playstation 3 specific client


OS/Arch CPU client SMP client GPU client PS3 client
Windows/x86 GUI, CLI CLI GUI, CLI
Linux/x86 CLI
Linux/x86_64 CLI CLI
FreeBSD/x86 CLI
OpenBSD/x86 CLI
Mac OS X/PPC GUI, CLI, SS
Mac OS X/x86 CLI
Playstation 3 PS3


Client Flavors

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 and those running Linux, FreeBSD or OpenBSD there is the Console (CLI) client. The Screensaver (SS) client is available to users who wish to contribute in the same way as in the early days of Distributed Computing (DC).


Graphical Client (GUI)

The graphical client allows the user to see a visualization of the protein being simulated. The graphical client is available for Windows and Mac OS X. There is no graphical client available for Linux. This will likely remain so because the Console client is a more natural fit for UNIX-like OSs.


Text-only Console Client (CLI)

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. The Linux console client features additional support for FreeBSD and OpenBSD through the -freeBSD and -openBSD flags respectively.


Screensaver Client (SS)

Screensaver clients run like any other screensaver; however, they continue to run the simulation in the background. The Screensaver client is only available to Mac OS X/PPC users. For Windows users there used to be a Screensaver client, but its functionality has been included into the Windows GUI client.


Available Clients

There are several clients available in the Folding@home project. The CPU client has been around since 2000 and is the most common client. It's also available to the widest variety of operating systems. The SMP client is the first client to handle cores which use symmetric multiprocessing (SMP); the SMP client is the second High Performance client. The first High Performance client released, is the GPU client for Windows, which uses the power of the newer generation graphics cards.


CPU client

The CPU client is the traditional Folding@home client meant to run on a single x86 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.


SMP client

The SMP client is the first High Performance client and was first released for Linux/x86_64 and Mac OS X/x86 and a bit later for Windows/x86 (32 bit). It uses the new SMP core which is the first core 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 core instances; mpiexec implements a Message Passing Interface (MPI) for communication with the cores. You can read more about the SMP client on its dedicated wiki page and in the official FAQs linked on the SMP client page.


GPU client

The GPU client is the first High Performance client for Windows/x86 and it's part of the Folding@Home Petaflop Initiative (FPI). It uses 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.


PS3 client

The PS3 client is part of Folding@home to the Sony Playstation 3 as part of the Folding@Home Petaflop Initiative (FPI).


Future Clients

Vijay Pande posted an announcement about new clients to be expected in the near future:

Posted: Sun 2007-02-18 22:55 UTC
Post subject:  On the horizon: v6, Win SMP, adjustment to points scheme 

With the GPU and PS3 ports looking more and more mature, we have put more
efforts into Win SMP and v6, and I am happy to say that we are beginning to
test both with outside alpha testers. It's still early, but we see the
light at the end of the tunnel on both now that they're in outside alpha
testing.

With the release of v6, we have also planned some adjustments to the point
system. It's clear that points are important to everyone. Points are 
important to the science, as they encourage people to do the science. 
However, this means that the points scheme has to be aligned such that
donors who optimize their points optimize the science of what we need too.

We have a plan on how to improve the current scheme and will announce it
as v6 rolls out. V6 has some new features which allow us to make changes to
the points scheme that were not possible before, which hopefully will let
us optimize the points for science, thus allowing us to do our scientific
calculations with even greater efficiency.

I'm generally not a fan of announcements without something more concrete
(e.g. a download for the new beta clients would be nice), but I wanted to let
people know what was coming, especially considering concerns that donors have
had with the current system. We've read the threads -- thanks for the 
feedback and suggestions. The new system likely won't make *everyone* happy,
but I bet it will resolve the issues raised, and it will also be better for
the science. More details to follow.
  	

_________________
Professor Vijay S. Pande, PhD
Director, Folding@Home Distributed Computing Project, and
Associate Professor of Chemistry and of Structural Biology, Stanford University


Other Clients

Besides the already available clients there is or has been work on other clients to use in Folding@home. For example, there has been work on a BOINC client, and there used to be a SPARC client. None of these clients are publicly available, nor is there any support for them.


For more information on alternative clients for Folding@home, see: Alternative FAH Platforms.


Client Limitations/3rd Party Tools

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 to gathering statistical data.


Client User ID and Launch Directory Locations

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:

Launch Directory
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

Source: Folding-community: uncle_fungus in Running two clients
See also: Folding-community: Bruce in Running two clients

Personal tools