Name | Folding@home |
---|
Screenshot | |
---|
Caption | The PlayStation 3 Folding@home client displays a 3D model of the protein being simulated. |
---|
Author | Vijay Pande |
---|
Developer | Stanford University / Pande Group |
---|
Released | 2000-10-01 |
---|
Latest release version | Windows:6.23 (uniprocessor)6.32 (GPU)Mac OS X:6.29.3 (PPC uniprocessor)6.29.3 (x86 SMP)Linux:6.02 (uniprocessor)6.34 (x86-64 SMP)PlayStation 3: 1.3.1 |
---|
Latest release date | (Mac SMP) |
---|
Latest preview version | All platforms:7.1.24 |
---|
Latest preview date | |
---|
Platform | Cross-platform |
---|
Language | English |
---|
Genre | Distributed computing |
---|
License | Proprietary |
---|
Website | |
---|
Folding@home ("Folding at Home", FAH, F@h) is a distributed computing (DC) project designed to perform computationally intensive simulations of protein folding and other molecular dynamics (MD), and to improve on the methods available to do so. It was launched on October 1, 2000, and is currently managed by the Pande Group, within Stanford University's chemistry department, under the supervision of Professor Vijay Pande.
In 2007 Guinness recognized Folding@home as the most powerful distributed computing cluster in the world. However, Bitcoin is now thought to be the most powerful distributed computer cluster. Folding@home is one of the world's largest distributed computing projects. The goal of the project is "to understand protein folding, misfolding, and related diseases."
Accurate simulations of protein folding and misfolding enable the scientific community to better understand the development of many diseases, including sickle-cell disease (drepanocytosis), Alzheimer's disease, Parkinson's disease, Bovine spongiform encephalopathy, cancer, Huntington's disease, cystic fibrosis, osteogenesis imperfecta, alpha 1-antitrypsin deficiency, and other aggregation-related diseases. More fundamentally, understanding the process of protein folding — how biological molecules assemble themselves into a functional state — is one of the outstanding problems of molecular biology. So far, the Folding@home project has successfully simulated folding in the 1.5 millisecond range — which is a simulation thousands of times longer than it was previously thought possible to model.
The Pande Group's goal is to refine and improve the MD and Folding@home DC methods to the level where it will become an essential tool for MD research, and to achieve that goal they collaborate with various scientific institutions.
As of November 23, 2010, seventy-eight scientific research papers have been published using the project's work. A University of Illinois at Urbana-Champaign report dated October 22, 2002 states that Folding@home distributed simulations of protein folding are demonstrably accurate.
Function
Folding@home does not rely on powerful
supercomputers for its
data processing; instead, the primary contributors to the Folding@home project are many hundreds of thousands of
personal computer users who have installed a
client program. The client runs in the
background, utilizing otherwise unused
CPU (or in some cases,
GPU, see below) power. The older, no longer used version of Folding@home for the CPU could be run as a screen saver, only folding while the user is away. In most modern personal computers, the CPU is rarely used to its full capacity at all times; the Folding@home client takes advantage of this unused processing power.
The Folding@home client periodically connects to a server to retrieve "work units", which are packets of data upon which to perform calculations. Each completed work unit is then sent back to the server. As data integrity is a major concern for all distributed computing projects, all work units are validated through the use of a 2048 bit digital signature.
Contributors to Folding@home may have user names used to keep track of their contributions. Each user may be running the client on one or more CPUs; for example, a user with two computers could run the client on both of them. Users may also contribute under one or more team names; many different users may join together to form a team. Contributors are assigned a score indicating the number and difficulty of completed work units. Rankings and other statistics are posted to the Folding@home website http://folding.stanford.edu/.
Software
The Folding@home client consists of three separate components.
The client software acts as a download and file manager for work units and scientific cores, controls the cores, and is the software with which the user interacts. Separating the client from the core enables the scientific methods to be updated automatically (or new methods to be added) without a client update.
The Work Unit is the actual data that the client is being asked to process.
The Core performs the calculations on the work unit. Folding@home's cores are based on modified versions of seven
molecular simulation programs for calculation:
TINKER,
GROMACS,
AMBER,
CPMD,
SHARPEN,
ProtoMol and
Desmond. Where possible,
optimizations are used to speed the process of calculation. There are many variants on these base simulation programs, each of which is given an
arbitrary identifier (Core xx).
Active cores
Cores listed in this section may not necessarily be being used by the project at any given time, but are included here as their use may be resumed at any time without notice. Deprecated and forthcoming cores are in the next section.
GROMACS (all variants of this core use SIMD optimizations including SSE, 3DNow+ or AltiVec, where available, unless otherwise specified)
* Gromacs (Core 78)
** Available for all uniprocessor clients only.
* DGromacs (Core 79)
** Double precision Gromacs, uses SSE2 only.
** Available for all uniprocessor clients only.
* DGromacsB (Core 7b)
** Nominally an update of DGromacs, but is actually based on the SMP/GPU codebases (and is therefore a completely new core). As a result, both are still in use.
** Double precision Gromacs, uses SSE2 only.
** Available for all uniprocessor clients only.
* DGromacsC (Core 7c)
** Double precision Gromacs, uses SSE2 only.
** Available on Windows and Linux uniprocessor clients only.
* GBGromacs (Core 7a)
** Gromacs with the Generalized Born implicit solvent model.
** Available for all uniprocessor clients only.
* Gromacs SREM (Core 80)
** Gromacs Serial Replica Exchange Method.
** The Gromacs Serial Replica Exchange Method core, also known as GroST (Gromacs Serial replica exchange with Temperatures), uses the Replica Exchange method (also known as REMD or Replica Exchange Molecular Dynamics) in its simulations.
** Available for Windows and Linux uniprocessor clients only.
* GroSimT (Core 81)
** Gromacs with simulated tempering.
** Available for Windows and Linux uniprocessor clients only.
* Gromacs 33 (Core a0)
** Uses the Gromacs 3.3 codebase.
* Available for all uniprocessor clients only.
* Gro-A3 core (Core a3)
** SMP version of the Gromacs A4 core.
** Uses threads rather than MPI for multicore support.
** Available for SMP2 client only.
** In open beta testing before general release.
** Released January 24, 2010.
* Gro-A4 (Core a4)
** A one-core version of the Gromacs SMP2 core.
** Available for Windows and Linux uniprocessor clients only.
* Gro-A5 (Core a5)
** An SMP version of the Gromacs A4 core.
** Only runs using the -bigadv client flag.
** Uses the same codebase as Gro-A3.
* Gro-A6 (Core a6)
** Same as Gro-A5, except it is a newer version.
** Only runs using the -bigadv client flag.
** Uses the same codebase as Gro-A3.
* GroGPU2 (Core 11)
** Graphics processing unit variant for ATI CAL-enabled and nVidia CUDA-enabled GPUs.
** Comes in two separate versions, one each for ATI and nVidia, but both have the same Core ID.
** GPUs do not support SIMD optimizations by design, so none are used in this core.
** Available for GPU2 client only.
* ATI-DEV (Core 12)
** Graphics processing unit developmental core for ATI CAL-enabled GPUS.
** Does not support SIMD optimizations.
** Available for GPU2 client only.
* NVIDIA-DEV (Core 13)
** Graphics processing unit developmental core for nVidia CUDA-enabled GPUs.
** Does not support SIMD optimizations.
** Available for GPU2 client only.
GroGPU2-MT (Core 14)
** Graphics processing unit variant for nVidia CUDA-enabled GPUs.
** Contains additional debugging code compared to the standard Core 11.
** Does not support SIMD optimizations.
** Released March 2, 2009.
** Available for GPU2 client only.
* Gro-PS3 (Does not have a known ID number, but also called SCEARD core)
** PlayStation 3 variant.
** No SIMD optimizations, uses SPE cores for optimization.
** Available for PS3 client only.
AMBER
PMD (Core 82)
** Uses SSE2 (currently only on Intel CPUs, see above).
** Available for Windows and Linux uniprocessor clients only.
SHARPEN
SHARPEN Core
**Currently inactive, in closed beta testing before general release.
**Uses different format to standard F@H cores, as there is more than one "Work Unit" (using the normal definition) in each work packet sent to clients.
Desmond
*Desmond Core
**Currently inactive, in closed beta testing before general release.
**Will be available for uniprocessor and SMP2 clients.
OpenMM
*OpenMM-Gromacs core (Core 16)
**An updated version of Core 15, using OpenCL to support both ATI and nVidia graphics cards.
**Currently inactive, in closed beta testing before general release.
**Will be available for GPU3 client only.
Participation
as recorded semi-daily from November 2006 until September 2007. Note the large spike in total compute power after March 22, when the
PlayStation 3 client was released.]]
Shortly after breaking the 200,000 active CPU count on September 20, 2005, the Folding@home project celebrated its fifth anniversary on October 1, 2005.
Interest and participation in the project has grown steadily since its launch. The number of active devices participating in the project increased substantially after receiving much publicity during the launch of their high performance clients for both ATi graphics cards and the PlayStation 3, and again following the launch of the high performance client for nVidia graphics cards.
As of March 28, 2011 the peak speed of the project overall has reached over 7 native PFLOPS (12.4 x86 PFLOPS) from around 464,000 active machines, and the project has received computing results from over 6.07 million devices since it first started.
Genome@home
Folding@home absorbed the
Genome@home project on March 8, 2004. The work which was started by the Genome@home project has since been completed using the Folding@home network (the work units without deadlines), and no new work is being distributed by this project. All donators were encouraged to download the Folding@home client (the F@h 4.xx client had a Genome@home option), and once the Genome@home work was complete these clients were asked to donate their processing power to the Folding@home project instead.
PetaFLOPS milestones
{| align="right" border="1" class="wikitable" style="margin-left:5px"
|-
! Native petaFLOPS threshold
! Date crossed
|-
| align="center" | 1.0
| September 16, 2007
|-
| align="center" | 2.0
| early May 2008
|-
| align="center" | 3.0
| August 20, 2008
|-
| align="center" | 4.0
| September 28, 2008
|-
| align="center" | 5.0
| February 18, 2009
|-
| align="center" | 6.0
| March 25, 2011
|-
| align="center" | 7.0
| March 28, 2011
|}
On September 16, 2007, the Folding@home project officially attained a sustained performance level higher than one native
petaFLOPS, becoming the first computing system of any kind in the world ever to do so, although it had briefly peaked above one native petaFLOPS in March 2007, receiving a large amount of mainstream media coverage for doing so. In early May 2008 the project attained a sustained performance level higher than two native petaFLOPS, followed by the three and four native petaFLOPS milestones on August 20 and September 28, 2008 respectively. On February 18, 2009, Folding@home achieved a performance level of just above 5 peta
FLOPS, thereby becoming the first computing system of any kind to surpass 5 native PFLOPS, just as it was for the other four milestones. In late March 2011 Folding@home briefly peaked above the 6 and 7 native petaFLOP barriers, but then fell back to 5.6.
Starting in April 2009, Folding@home began reporting performance in both "Native" FLOPS and x86 FLOPS. which uses AMD/ATI's CAL. On June 17, 2008, a version of the second-generation Windows GPU client for CUDA enabled Nvidia GPUs was also released for public beta testing. The GPU clients proved reliable enough to be promoted out of the beta phase and were officially released August 1, 2008. Newer GPU cores continue to be released for both CAL and CUDA.
While the only officially released GPU v2.0 client is for Windows, this client can be run on Linux under Wine with NVIDIA graphics cards. The client can operate on both 32- and 64-bit Linux platforms, but in either case the 32-bit CUDA toolkit is needed. This configuration is not officially supported, though initial results have shown comparable performance to that of the native client and no problems with the scientific results have been found. An unofficial installation guide has been published. GPU3 will use OpenCL (preferred over DirectCompute) as the software interface, which may mean that the GPU core will be unified for both ATI and nVidia, and may also mean the addition of support for other platforms with OpenCL support.
On May 25, 2010, Vijay Pande announced an open beta of the GPU3 client on the Folding@home blog.
The new core initially supports only Nvidia GPUs, but will support ATI/AMD GPUs in a subsequent release.
PlayStation 3
Folding@home is also a channel of the application
Life with PlayStation for
PlayStation 3. The client was originally a standalone application, but is now part of a
virtual globe which depicts
news,
weather and
encyclopedic information (notably from
Wikipedia).
Multi-core processing client
As newer CPUs are being released, the migration to
multiple cores is becoming more adopted by the public, and the Pande Group is adding
symmetric multiprocessing (SMP) support to the Folding@home client in hope of using the additional processing power. The SMP support is being achieved via
Message Passing Interface (MPI) protocols. In current state it is being confined inside one node by hard coded usage of the
localhost.
On November 13, 2006, the beta SMP Folding@home clients for x86-64 Linux and x86 Mac OS X were released. The beta win32 SMP Folding@home client is out as well, and a 32-bit Linux client is currently in development.
On June 17, 2009 the Pande Group revealed that a second generation SMP client (known as the SMP2 client) was in development. This client will use threads rather than MPI Some teams offer prizes in an attempt to increase participation in the project.
Development
The Folding@home project does not make the project
source code available to the public, citing security and integrity concerns. At the same time, most of the scientific codes used by the FAH (ex.
Cosm,
GROMACS,
TINKER,
AMBER,
CPMD,
BrookGPU) are largely
open-source software or under similar licenses.
A development version of Folding@home once ran on the open source BOINC framework; however, this version remained unreleased.
Estimated energy use
The original PlayStation 3 has a maximum power rating of 380
watts (newer versions have a lower rating). As Folding@home is a CPU intensive application, it causes 100% utilization. However, according to Stanford's PS3 FAQ, "We expect the PS3 to use about 200W while running Folding@home."
As of December 27, 2008, there are 55,291 PS3s providing 1,559,000,000 MFlops of processing power. This amounts to 28,196 MFlops/PS3, and with Stanford's estimate of 200W per PS3 (for original units manufactured on the 90 nm process), 140.98 MFlops/watt.
The Cell processors used in 65 nm PlayStation 3s lower power use to around 140 W per PS3, while the 45 nm PS3s reduce it again to around 100 W. This further increases the power efficiency of the contribution from PlayStation 3 units.
The total power needed to produce the processing power used by the project can be estimated based on the average FLOPS per watt. As of November 2008, according to the Green500 list, the most efficient computer - also based on a version of the Cell BE - runs at 536.24 MFLOPS/watt. One petaFLOPS equals 1,000,000,000 MFLOPSs. Therefore, the current Folding@home project, if it were theoretically using the most efficient CPUs currently available, would use at least 2.8 megawatts of power per petaFLOPS, slightly more than the world's first petaFLOPS system, the Cell-based Roadrunner which uses 2.345MW. This is equivalent to the power needed to light approximately 40,000 standard house light bulbs (between 60 and 100 watts each), or the equivalent of 1-3 wind turbines depending on their size.
Estimates of energy usage per time period are more difficult than estimates of energy usage per processing instruction. This is because Folding@home clients are often run on computers that would be powered-on even in the absence of the Folding@home client, and that run other programs simultaneously.
Looking at energy-balance in a larger context needs a number of assumptions. While Folding@home increases processor utilization, and thus (usually) power use; the extent to which it does so depends on the client processor's normal operating load, and its ability to reduce clock speeds when presented with less-than-full utilization (a process known as dynamic frequency scaling). In a Folding@home client that runs in a heated home, the excess heat generated by the power usage would reduce the amount of energy needed to heat the building somewhat. However, such energy gains would be offset over the year in those locations where air-conditioners are used during warmer months.
See also
Blue Gene
Grid computing
List of distributed computing projects
Software for molecular modeling
Molecular modeling on GPU
Rosetta@home
References
External links
Folding@home project homepage
Folding@home Wiki
FAH-Addict; Folding@home related news
Extreme Overclocking Folding Homepage
Wikipedia team
002 Tools F@H Performance Data site disabled
Talk given by Folding@home author Vijay Pande at the PARC forum
Folding@home Instructional Video on YouTube
Interview of Vijay Pande about Folding@home Project
Category:Protein folds
Category:Protein structure
Category:Distributed computing projects
Category:Windows software
Category:Linux science software
Category:Mac OS X software
Category:PlayStation 3 software
Category:Cross-platform software
Category:2000 introductions