Folding@home

Folding@home（简称FAH或F@h）是一个研究蛋白质折叠、误折、聚合及由此引起的相关疾病的分布式计算工程。由斯坦福大学化学系的潘德实验室（Pande Lab）主持，于2000年10月1日正式启动。这包括蛋白质折叠的过程和蛋白质的运动，并且依赖于在志愿者的个人计算机上运行的模拟。Folding@home 目前位于宾夕法尼亚大学，由维杰·潘德(Vijay Pande)的前学生Greg Bowman领导。

Folding@home现时是世界上最大的分布式计算计划，于2007年为吉尼斯世界纪录所承认。由于2019冠状病毒病疫情，对该项目的兴趣增加，该系统在2020年3月下旬实现了大约1.22 exaflops的速度，到2020年4月12日达到了2.43 exaflops，使其成为世界上第一个exaflop计算系统。其大规模计算网络的这种性能水平使研究人员能够对蛋白质折叠进行计算成本高昂的原子级模拟，其时间比以前长数千倍。自2000年10月1日启动以来，潘德实验室（Pande Lab）已经产生了 225 篇科研论文，作为 Folding@home 的直接成果。该项目的模拟结果与实验非常吻合。

2004年3月8日，研究基因结构的Genome@home计划终止，并入Folding@home。

## 意义

Folding@home专注于精确地模拟蛋白质折叠和错误折叠的过程，以便能更好地了解多种疾病的起因和发展，包括阿兹海默症、亨廷顿舞蹈症、牛海绵状脑病（疯牛病、疯牛病）、癌症和囊胞性纤维症。到目前为止，Folding@home 已成功模拟5—10微秒的折叠过程，超出先前估计可模拟的时段数千倍。

很多研究蛋白质结构的论文，都有引用这个计划的成果。

伊利诺伊大学香槟分校在2002年10月22日发表的报告证实，该计划采用分散模拟方式，所得出的结果是准确的。

## 生物医学研究

### 亨丁顿舞蹈症

亨丁顿舞蹈症起因于第4对染色体异常，病发时会无法控制四肢，就像手舞足蹈一样，并伴随着智能减退，最后因吞咽、呼吸困难等原因而死亡。

### 成骨不全症

成骨不全症，又称脆骨症，是一种先天性遗传疾病，男女性患病的比例大约相同。这种疾病会造成第一型胶原纤维缺陷，使骨骼忍受外力冲击的能力较正常人差，即使是轻微的碰撞，也会造成严重的骨折，因此这类的病患被称为“玻璃娃娃”或“玻璃骨”。

### 病毒

彭德实验室正利用Folding@home对一些病毒进行研究，对象包括流行性感冒病毒、人类免疫缺陷病毒（HIV）等，以寻找阻止病毒进入细胞的方法。历史上全球曾多次出现高死亡率的周期性流感疫潮，其中1918年的西班牙流感导致全球近一亿人死亡。当病毒感染细胞时，会发生“脂质双层融合”（Lipid bilayer fusion/membrane fusion），其蛋白质会与细胞的蛋白质进行对接，过程之后或能进入细胞，或自我裹在细胞膜内。

#### COVID-19

2020年2月27日，Folding@home发布新的计算程序以研究2019-nCoV病毒。分散式运算项目 Folding@home 宣布加入新冠病毒 2019-nCoV 的研究以帮助研究人员开发出治疗方法。Folding@home 指出：2019-nCoV 是 SARS 冠状病毒（SARS-CoV）的“近亲”，并且以类似的方式起作用。为了了解这些讯息，需要我们对 2019-nCoV 峰值蛋白的结构进行建模。我们需要构建可以实现此目标的计算模型，但它需要大量的运算能力。

Folding @ Home正在模拟 COVID-19 蛋白质动态，以寻找新的治疗机会。Folding @ Home专案总监Greg Bowman说明，蛋白质是执行许多与生命相关之各种功能的分子机器，它们能够感应到味觉与嗅觉，也能执行肌肉收缩或食物分解等任务，还能发挥结构性作用，在许多情况下，会自发性地折叠成紧凑的功能结构。另一方面，病毒也具备蛋白质，可用来抑制人们的免疫系统并自我繁殖，为了对付COVID-19，必须了解这些病毒蛋白质的活动方式，以设计出能够阻止它们的疗法。但这样的模拟需要强大运算资源，因此Bowman号召全球电脑用户贡献自己的闲置运算资源。不过，目前Folding @ Home尚未替COVID-19设置独立类别，现在想贡献COVID-19蛋白质折叠运算的使用者可选择“Any Disease”，相关专案现都暂居于该类别中。

前一阵子Nvidia在官方Twitter推文，呼吁PC游戏玩家联合起来对抗新型冠状病毒(COVID-19)，方法是把自己闲置的GPU算力都捐出来，帮助科学家们做病毒研究──透过采用名为Folding@home的软件，就能让每个在家使用电脑的人把算力捐出来，每个人一点，就能以全球组合成网络的方式，构建起一个庞大的超级电脑。Folding@home在官网上提到，SARS-CoV病毒的“低分辨率”结构已经有了，外加SARS-CoV和COVID-19的已知差别，Folding@home的这个项目就是要帮助构建起COVID-19棘突蛋白的结构，并识别抗体的靶点。而构建计算模型是需要海量算力的，这是Folding@home介入的原因。

## Folding@home和Rosetta@home

Folding@home和另一个分布式计算计划Rosetta@home都做和蛋白质相关的研究，导致公众常常把两者的目标混淆，或不知道应该参加哪个计划。为此，Folding@home的管理者、潘德实验室的领导人费积·潘德教授解说道：

我熟悉贝克、朗根纳顿和他们的工作，并（正如整个蛋白质研究社群一样）觉得他们的工作至关重要，使我印象深刻。但是，Rosetta@home和Folding@home两者想要解决的，是很不同的问题。

Rosetta@home只着重蛋白质完成折叠后的最终状态，并非折叠的过程。而且，Rosetta@home也不会探究折叠可能出现的错误。他们的研究方法，对我们感兴趣的问题和要对付疾病（例如阿兹海默症），也没有帮助。

同时，人们也该明白，用电脑去准确预测蛋白质的结构，比起进行真正的实验，仍是更艰难的。而从Folding@home所获得的有关蛋白质折叠和误折的资料（例如速度、能量）是和实验结果相符合的，也告诉我们更多实验不能发现的东西。而Rosetta@home，虽然已进行了很长时间，也取得一些很可观的成果，但当要在Rosetta@home预测的结构和晶体结构（crystal structure）之间选择时，都会选取晶体结构。因为他们的努力，我相信这将会改变，但要这梦想成真，还有一段很长的路要走。

因此，两个计划都很有价值，但处理的却是不同的问题。我想有些人误解了，以为Folding@home是关于预测蛋白质的结构（其实并不是，这是Rosetta@home的专长），Rosetta@home是研究与蛋白质折叠错误相关的疾病（其实并不是，这是Folding@home的专长），但是两个计划研究的项目却和那些人想的恰恰相反。希望这篇贴文有助澄清一下。

## 运作方式

Folding@home并不依靠强大的超级电脑进行计算，反而主要的贡献者是成千上万的个人电脑。每部参与的电脑都安装了一个在背景执行的客户端程序，在系统不忙碌的时候调用中央处理器执行模拟工作。现时世界上绝大部分的个人电脑，在一般的情况下都很少用尽本身的计算能力。Folding@home就是使用这些本来都浪费了的运算力量。

Folding@Home的客户端会定时连接设于斯坦福大学的服务器去取得“工作单元”（work units），即一种存有实验资料的数据包，根据实验资料进行计算。每个工作单元计算完成后，再传回服务器。

## 分析软件

Folding@home的用户端利用了经修改的TINKER、GROMACS、AMBER及CPMD这四款分子模拟程式进行运算，并会在许可的情况下作出优化，以把运算速度加快。这四款模拟程式也被修改成多个不同版本，供多款作业平台使用，每款程式的变体会以编号“Core xx”作分类。

### 现役内核

- GROMACS
- Gromacs（Core 78）
- 仅提供予所有单处理器平台使用。
- DGromacs（Core 79）
- Gromacs的双倍精准版本，仅使用SSE2。
- 仅提供予所有单处理器平台使用。
- DGromacsB (Core 7b)
- 名义上是DGromacs的更新版本，实际上是基于SMP／GPU版本的源码的全新内核。两者均在使用中。
- Gromacs的双倍精准版本，仅使用SSE2。
- 仅提供予所有单处理器平台使用。
- DGromacsC (Core 7c)
- Gromacs的双倍精准版本，仅使用SSE2。
- 仅提供予单处理器的Windows及Linux平台使用。
- GBGromacs（Core 7a）
- Gromacs SREM（Core 80）
- GroSimT（Core 81）
- Gromacs 33（Core a0）
- Gro-SMP（Core a1）
- GroCVS（Core a2）
- GroGPU2（Core 11及Core 13）
- Gro-PS3（没有编号，但也称为SCEARD内核）
- AMBER
- PMD (Core 82)
- 未优化
- 仅提供予单处理器的Windows及Linux平台使用。

### 已停用内核

- TINKER
- Tinker core (Core 65)
- 现已停止使用，并由速度更快的同类内核GBGromacs (Core 7a)所替代。
- 未优化
- 仅提供予所有单处理器平台使用。
- GROMACS
- GroGPU (Core 10)
- CPMD
- QMD (Core 96)

## 命令行界面版本

Folding@home Console version是Folding@home的命令行界面版本，由史丹佛大学化学系的潘德实验室主持，于2000年10月1日正式启动，可精确地模拟蛋白质折叠和错误折叠的过程，以便能更好地了解多种疾病的起因和发展，Folding@home目前是世界上最大的分散式计算计划。

## 高性能平台支援

### 图形处理器

要快速运算蛋白质的折叠效应，得需以高浮点运算能力的处理器进行，GPU具备强大浮点运算性能的优势，Folding@home方面也着手开发供GPU使用的程式，把作业交给GPU运算。2006年10月2日，Folding@home公开发行供Windows系统使用的GPU测试版本，测试期间收到由450颗ATI X1900 GPU提供的31 TFLOPS运算性能，每颗显核平均运算运力为一颗传统CPU的70多倍。至2008年4月10日，第二代Windows GPU公开测试版推出，新版本支援ATI/AMD HD2xxx及HD3xxx系列，不用再透过DirectX界面与显示核心沟通，并支援多GPU核心。供NVIDIA GPU使用的版本则利用CUDA技术，就可以使到GPU可以进行蛋白质折叠运算。NVIDIA官方表示，只需全球0.1%支援CUDA的显卡进行运算，效能就可以达到7PFLOPS，远超过超级电脑的计算水平。现时已推出供启用CUDA的NVIDIA GPU使用的公开测试版本。

### PlayStation 3

索尼已加入Folding@home计划，从PS3的1.6版本固件开始，支援该项目科学运算。由于PS3使用了Cell处理器，能提供强大的运算性能。当PS3闲置时，就会启动运算程式，计算蛋白质的折叠效应，利用结果去研究各种疑难杂症。当CELL处理器运算时，NVIDIA的RSX显示卡核心就会提供立体的蛋白质折叠实时图形展示。该图形展示效果不错，支援1080p输出，还有HDR效果。用户可利用手柄来控制观赏角度。

PS3曾经为Folding@home提供最多的运算能力，随着供NVIDIA GPU使用的软件推出，NVIDIA GPU取代了PS3，成为了Folding@home的主力。截至2008年9月初，参与的PS3游戏机为该计划提供1,200多TFLOPS的运算能力，占总数近35%。

### 多核处理器

随着更多不同款式的多核处理器陆续推出，支援多核心的软件也越来越多，Folding@home也加入支援对称多处理机（SMP），希望借此增强软件的运算能力。透过利用MPI，软件可同时使用多个内核进行运算。

支援SMP的Folding@home于2006年11月13日推出供x86-64 Linux及x86 Mac OS X执行的beta测试版本，现时也已推出供Win32使用的试版本，而供32位Linux执行的版本则仍在开发中。

## 估计能源消耗

### PS3相关

一台PlayStation 3游戏机的标称功率为380W，由于Folding@Home是设计供CPU使用，因此会造成主机功耗达100%。但根据斯坦福方面有关PS3主机的常见问题，指出每台主机“在执行该程式时，其估计功率约为200W左右”。截至2008年5月底，共有51,000多台PS3主机为该计划提供1,400多TFlops的运算能力，每台PS3平均提供近30,000MFlops，以史丹福的每台主机200W输出（使用90nm制程的处理器）估计，每瓦输出提供150多MFlops。随着PS3的Cell处理器改用更微细的65nm及45nm制程，处理器的功耗会进一步下降，其每瓦输出提供的运算的能力也会提高。

### PC相关

取决于PC本身CPU最大能耗以及计算程序设置。

## 注意事项

- 本项目使用独立计算程序，可以在多平台下进行计算，包括PC、MAC 和 PS3
- 本项目的客户端分为3类，分别是CPU计算客户端，GPU计算客户端和PS3计算客户端
- 本项目的 GPU 计算客户端支持 AMD-ATI HD2000 及以上系列和 nVidia 所有支持 CUDA 系列的显卡
- 最新版的V7综合客户端同时支持多核CPU和AMD/ATI HD2000 及以上系列、NVIDIA 8xxx及以上系列显卡计算
- 为获得更好的计算效能建议使用V7综合客户端或者V6/High Performance Clients客户端计算

## 基本资料

- 作者：Vijay Pande
- 开发者：潘德实验室、SONY、Nvidia、ATI
- 发行日期：2000年10月1日
- 操作系统：Microsoft Windows、macOS、Linux、Android
- 平台：跨平台: IA-32, x86-64; ARM
- 语言：英语，法语，西班牙语，瑞典语
- 类型：分布式计算
- 许可协议：客户端（8.0版本之前）：部分GPL、部分专有、客户端（8.0版本及以后）：GNU GPL第三版或任意之后版本
- 网站： foldingathome.org