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