The distributed-computing project Folding@home uses scientific computer programs, referred to as "cores" or "fahcores", to perform calculations. Folding@home's cores are based on modified and optimized versions of molecular simulation programs for calculation, including TINKER, GROMACS, AMBER, CPMD, SHARPEN, ProtoMol and Desmond. These variants are each given an arbitrary identifier (Core xx). While the same core can be used by various versions of the client, separating the core from the client enables the scientific methods to be updated automatically as needed without a client update.
1. Active Cores
These cores listed below are currently used by the project.[1]
1.1. GROMACS
- Core a7
- Available for Windows, Linux, and macOS, use Advanced Vector Extensions if available, for a significant speed improvement.[2]
- Core a8
- Available for Windows, Linux, macOS and ARM, uses Gromacs 2020.5 [3]
1.2. GPU
Cores for the Graphics Processing Unit use the graphics chip of modern video cards to do molecular dynamics. The GPU Gromacs core is not a true port of Gromacs, but rather key elements from Gromacs were taken and enhanced for GPU capabilities.[4]
GPU3
These are the third generation GPU cores, and are based on OpenMM, Pande Group's own open library for molecular simulation. Although based on the GPU2 code, this adds stability and new capabilities.[5]
- core 22
- v0.0.18 Available to Windows and Linux for AMD and NVIDIA GPUs using OpenCL and CUDA, if available. It uses OpenMM 7.4.2 [6]
- v0.0.20 Available to Windows and Linux for AMD and NVIDIA GPUs using OpenCL and CUDA, if available. It uses OpenMM 7.7.0, which provides performance improvements and many new science features [7]
2. Inactive Cores
These cores are not currently used by the project, as they are either retired due to becoming obsolete, or are not yet ready for general release.[1]
2.1. TINKER
TINKER is a computer software application for molecular dynamics simulation with a complete and general package for molecular mechanics and molecular dynamics, with some special features for biopolymers.[8]
- Tinker core (Core 65)
- An unoptimized uniprocessor core, this was officially retired as the AMBER and Gromacs cores perform the same tasks much faster. This core was available for Windows, Linux, and Macs.[9]
2.2. GROMACS
- GroGPU (Core 10)
- Available for ATI series 1xxx GPUs running under Windows.[10][11] Although mostly Gromacs based, parts of the core were rewritten.[10] This core was retired as of June 6, 2008 due to a move to the second generation of the GPU clients.[10]
- Gro-SMP (Core a1)
- Available for Windows x86, Mac x86, and Linux x86/64 clients,[12] this was the first generation of the SMP variant, and used MPI for Inter-process communication. This core was retired due to a move to a thread-based SMP2 client.[13][14]
- GroCVS (Core a2)
- Available only to x86 Macs and x86/64 Linux, this core is very similar to Core a1, as it uses much of the same core base, including use of MPI. However, this core utilizes more recent Gromacs code, and supports more features such as extra-large work units.[15][16] Officially retired due to move to a threads-based SMP2 client.
- Gro-PS3
- Also known as the SCEARD core, this variant was for the PlayStation 3 game system,[17][18] which supported a Folding@Home client until it was retired in November 2012. This core performed implicit solvation calculations like the GPU cores, but was also capable of running explicit solvent calculations like the CPU cores, and took the middle ground between the inflexible high-speed GPU cores and flexible low-speed CPU cores.[19] This core used SPE cores for optimization, but did not support SIMD.
- Gromacs (Core 78)
- This is the original Gromacs core,[12] and is currently available for uniprocessor clients only, supporting Windows, Linux, and macOS.[20]
- Gromacs 33 (Core a0)
- Available to Windows, Linux, and macOS uniprocessor clients only, this core uses the Gromacs 3.3 codebase, which allowing a broader range of simulations to be run.[12][21]
- Gromacs SREM (Core 80)
- This core uses the Serial Replica Exchange Method, which is also known as REMD (Replica Exchange Molecular Dynamics) or GroST (Gromacs Serial replica exchange with Temperatures) in its simulations, and is available for Windows and Linux uniprocessor clients only.[12][22][23]
- GroSimT (Core 81)
- This core performs simulated tempering, of which the basic idea is to enhance sampling by periodically raising and lowering temperature. This may allow Folding@home to more efficiently sample the transitions between folded and unfolded conformations of proteins.[12] Available for Windows and Linux uniprocessor clients only.[24]
- DGromacs (Core 79)
- Available for uniprocessor clients, this core uses SSE2 processor optimization where supported and is capable of running on Windows, Linux, and macOS.[12][25]
- DGromacsB (Core 7b)
- Distinct from Core 79 in that it has several scientific additions.[12] Initially released only to the Linux platform in August 2007, it will eventually be available for all platforms.[26]
- DGromacsC (Core 7c)
- Very similar to Core 79, and initially released for Linux and Windows in April 2008 for Windows, Linux, and macOS uniprocessor clients.[27]
- GB Gromacs (Core 7a)
- Available solely for all uniprocessor clients on Windows, Linux, and macOS.[1][12][28]
- GB Gromacs (Core a4)
- Available for Windows, Linux,[29] and macOS,[30] this core was originally released in early October 2010,[31] and as of February 2010 uses the latest version of Gromacs, v4.5.3.[29]
- SMP2 (Core a3)
- The next generation of the SMP cores, this core uses threads instead of MPI for inter-process communication, and is available for Windows, Linux, and macOS.[32][33]
- SMP2 bigadv (Core a5)
- Similar to a3, but this core is specifically designed to run larger-than-normal simulations.[34][35]
- SMP2 bigadv (Core a6)
- A newer version of the a5 core.
2.3. CPMD
Short for Car–Parrinello Molecular Dynamics, this core performs ab-initio quantum mechanical molecular dynamics. Unlike classical molecular dynamics calculations which use a force field approach, CPMD includes the motion of electrons in the calculations of energy, forces and motion.[36][37] Quantum chemical calculations have the possibility to yield a very reliable potential energy surface, and can naturally incorporate multi-body interactions.[37]
- QMD (Core 96)
- This is a double-precision[37] variant for Windows and Linux uniprocessor clients.[38] This core is currently "on hold" due to the main QMD developer, Young Min Rhee, graduating in 2006.[37] This core can use a substantial amount of memory, and was only available to machines that chose to "opt in".[37] SSE2 optimization on Intel CPUs is supported.[37] Due to licensing issues involving Intel libraries and SSE2, QMD Work Units were not assigned to AMD CPUs.[37][39]
2.4. SHARPEN
- SHARPEN Core[40][41]
- In early 2010 Vijay Pande said "We've put SHARPEN on hold for now. No ETA to give, sorry. Pushing it further depends a lot on the scientific needs at the time."[42] This core uses different format to standard F@H cores, in that there is more than one "Work Unit" (using the normal definition) in each work packet sent to clients.
2.5. Desmond
The software for this core was developed at D. E. Shaw Research. Desmond performs high-speed molecular dynamics simulations of biological systems on conventional computer clusters.[43][44][45][46] The code uses novel parallel algorithms[47] and numerical techniques[48] to achieve high performance on platforms containing a large number of processors,[49] but may also be executed on a single computer. Desmond and its source code are available without cost for non-commercial use by universities and other not-for-profit research institutions.
- Desmond Core
- Possible available for Windows x86 and Linux x86/64,[50] this core is currently in development.[5]
2.6. AMBER
Short for Assisted Model Building with Energy Refinement, AMBER is a family of force fields for molecular dynamics, as well as the name for the software package that simulates these force fields.[51] AMBER was originally developed by Peter Kollman at the University of California, San Francisco, and is currently maintained by professors at various universities.[52] The double-precision AMBER core is not currently optimized with SSE nor SSE2,[53][54] but AMBER is significantly faster than Tinker cores and adds some functionality which cannot be performed using Gromacs cores.[54]
- PMD (Core 82)
- Available for Windows and Linux uniprocessor clients only.[53]
2.7. ProtoMol
ProtoMol is an object-oriented, component based, framework for molecular dynamics (MD) simulations. ProtoMol offers high flexibility, easy extendibility and maintenance, and high performance demands, including parallelization.[55] In 2009, the Pande Group was working on a complementary new technique called Normal Mode Langevin Dynamics which had the possibility to greatly speed simulations while maintaining the same accuracy.[5][56]
- ProtoMol Core (Core b4)
- Available to Linux x86/64 and x86 Windows.[57]
2.8. GPU
GPU2
These are the second generation GPU cores. Unlike the retired GPU1 cores, these variants are for ATI CAL-enabled 2xxx/3xxx or later series and NVIDIA CUDA-enabled NVIDIA 8xxx or later series GPUs.[58]
- GPU2 (Core 11)
- Available for x86 Windows clients only.[58] Supported until approximately September 1, 2011 due to AMD/ATI dropping support for the utilized Brook programming language and moving to OpenCL. This forced F@h to rewrite its ATI GPU core code in OpenCL, the result of which is Core 16.[59]
- GPU2 (Core 12)
- Available for x86 Windows clients only.[58]
- GPU2 (Core 13)
- Available for x86 Windows clients only.[58]
- GPU2 (Core 14)
- Available for x86 Windows clients only,[58] this core was officially released Mar 02, 2009.[60]
GPU3
These are the third generation GPU cores, and are based on OpenMM, Pande Group's own open library for molecular simulation. Although based on the GPU2 code, this adds stability and new capabilities.[5]
- GPU3 (core 15)
- Available to x86 Windows only.[61]
- GPU3 (core 16)
- Available to x86 Windows only.[61] Released alongside the new v7 client, this is a rewrite of Core 11 in OpenCL.[59]
- GPU3 (core 17)
- Available to Windows and Linux for AMD and NVIDIA GPUs using OpenCL. Much better performance because of OpenMM 5.1[62]
- GPU3 (core 18)
- Available to Windows for AMD and NVIDIA GPUs using OpenCL. This core was developed to address some critical scientific issues in Core17 [63] and uses the latest technology from OpenMM[64] 6.0.1. There are currently issues regarding the stability and performance of this core on some AMD and NVIDIA Maxwell GPUs. This is why assignment of work units running on this core has been temporarily stopped for some GPUs.[65]
- GPU3 (core 21)
- Available to Windows and Linux for AMD and NVIDIA GPUs using OpenCL. It uses OpenMM 6.2 and fixes the Core 18 AMD/NVIDIA performance issues.[66]